Что означает «wb» в этом коде, используя Python? - PullRequest
73 голосов
/ 19 апреля 2010

Код:

file('pinax/media/a.jpg', 'wb')

Ответы [ 3 ]

82 голосов
/ 19 апреля 2010

Режим файла , запись и двоичный файл. Поскольку вы пишете .jpg файл, он выглядит хорошо.

Но если вы предполагаете прочитать этот jpg-файл, вам нужно использовать 'rb'

Подробнее

В Windows 'b' добавляется в режим открывает файл в двоичном режиме, поэтому Есть также такие режимы, как «RB», «WB» и 'r + b'. Python на Windows делает различие между текстом и двоичным файлы; символы конца строки в текстовые файлы автоматически изменяются немного, когда данные читаются или пишутся. Это закулисное изменение данные файла подходят для текста ASCII файлы, но это повредит двоичные данные как в файлах JPEG или EXE.

54 голосов
/ 19 апреля 2010

wb указывает, что файл открыт для записи в двоичном режиме.

В системах Unix (Linux, Mac OS X и т. Д.) Двоичный режим ничего не делает - они обрабатывают текстовые файлы так же, как и любые другие файлы. Однако в Windows текстовые файлы пишутся со слегка измененными окончаниями строк. Это вызывает серьезную проблему при работе с реальными двоичными файлами, такими как exe или jpg. Поэтому при открытии файлов, которые не должны быть текстовыми, даже в Unix, вы должны использовать wb или rb. Используйте обычный w или r только для текстовых файлов.

Ссылка: http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files

6 голосов
/ 19 апреля 2010

Это режим, в котором вы открываете файл. «wb» означает, что вы пишете в файл (w), и что вы пишете в двоичном режиме (b).

Ознакомьтесь с документацией для получения дополнительной информации: clicky

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...