Code:
file('pinax/media/a.jpg', 'wb')
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
File mode, write and binary. Since you are writing a .jpg file, it looks fine.
But if you supposed to read that jpg file you need to use 'rb'
More info
On Windows, ‘b’ appended to the mode
opens the file in binary mode, so
there are also modes like ‘rb’, ‘wb’,
and ‘r+b’. Python on Windows makes a
distinction between text and binary
files; the end-of-line characters in
text files are automatically altered
slightly when data is read or written.
This behind-the-scenes modification to
file data is fine for ASCII text
files, but it’ll corrupt binary data
like that in JPEG or EXE files.
Method 2
The wb indicates that the file is opened for writing in binary mode.
When writing in binary mode, Python makes no changes to data as it is written to the file. In text mode (when the b is excluded as in just w or when you specify text mode with wt), however, Python will encode the text based on the default text encoding. Additionally, Python will convert line endings (n) to whatever the platform-specific line ending is, which would corrupt a binary file like an exe or png file.
Text mode should therefore be used when writing text files (whether using plain text or a text-based format like CSV), while binary mode must be used when writing non-text files like images.
References:
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
https://docs.python.org/3/library/functions.html#open
Method 3
That is the mode with which you are opening the file.
“wb” means that you are writing to the file (w), and that you are writing in binary mode (b).
Check out the documentation for more: clicky
Method 4
Yeah, many peoples getting confuse to understand what is “b”;
Actually in computer programming having various data type;
“b” is ‘byte’ data type and it’s 8 bits long;
When you open an image file you can see “{ 0xFF, 0xF0, 0x0F, 0x11 }” this kinds of text and it’s byte data;
yes that’s right “b” means binary data but another mean of “b” is ‘byte’ data in Python “wb” means “write+byte”..
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0