What does 'wb' mean in this code, using Python?


Question

Code:

file('pinax/media/a.jpg', 'wb')
1
77
11/19/2018 6:37:23 AM

Accepted Answer

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.

84
4/19/2010 7:50:53 AM

The wb indicates that the file is opened for writing in binary mode.

On Unix systems (Linux, Mac OS X, etc.), binary mode does nothing - they treat text files the same way that any other files are treated. On Windows, however, text files are written with slightly modified line endings. This causes a serious problem when dealing with actual binary files, like exe or jpg files. Therefore, when opening files which are not supposed to be text, even in Unix, you should use wb or rb. Use plain w or r only for text files.

Reference: http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon