I have found that there are a lot of similarities between both modules in the area of creating temp files using io.BytesIO()
or io.StringIo()
and tempfile.TemporaryFile()
What is the purpose of each one ?
Asked
Active
Viewed 2,634 times
5

Mohamed Samir
- 367
- 3
- 9
1 Answers
5
io.BytesIO()
create a file-like object linked to a memory area, and should be used to store binary data (like data used to represent an image, a music, a MS Word document, etc.).
io.StringIO()
create a file-like object linked to a memory area, and should be used to store text data (like a html page, a php script, etc).
tempfile.TemporaryFile()
create a temp file on the disk (not in memory). Use first argument mode
to specify or not the b
flag to determine if the file should store binary data or only text.

Antwane
- 20,760
- 7
- 51
- 84
-
TemporaryFile here https://stackoverflow.com/questions/35278482/tempfile-temporaryfile-vs-stringio as you can see in the last two paragraphs of the answer he said it depends on the OS, so I think that there are something else behind creating this module – Mohamed Samir Jan 29 '20 at 13:17
-
This is because on Unix systems (macOS, Linux) you can mount `/tmp` directory in RAMdisk. This kind of config put files into RAM instead of filesystem when copied in `/tmp`. This is done at OS level and is not related to Python tools. – Antwane Jan 29 '20 at 13:23
-
after reading docs a little bit, I have found that it uses the disk storage, And I am going to discover more about its functionalities – Mohamed Samir Jan 29 '20 at 13:43