Подтвердить что ты не робот

Что означает "wb" в этом коде, используя Python?

код:

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

Ответ 1

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

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

Дополнительная информация

В Windows, 'b' добавлен в режим открывает файл в двоичном режиме, поэтому существуют также такие режимы, как "rb", "wb", и 'r + b'. Python на Windows делает различие между текстом и двоичным файлы; символы конца строки в текстовые файлы автоматически изменяются когда данные считываются или записываются. Эта за кадром модификация данные файла отлично подходят для текста ASCII файлы, но itll поврежденные двоичные данные как в файлах JPEG или EXE.

Ответ 2

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

При записи в двоичном режиме Python не вносит изменений в данные, поскольку они записываются в файл. Однако в текстовом режиме (когда b исключен, например, просто w или когда вы задаете текстовый режим с помощью wt), Python будет кодировать текст на основе кодировки текста по умолчанию. Кроме того, Python преобразует окончания строк (\n) в любое окончание, зависящее от платформы, что приведет к повреждению двоичного файла, такого как файл exe или png.

Поэтому текстовый режим следует использовать при записи текстовых файлов (будь то простой текст или текстовый формат, такой как CSV), тогда как двоичный режим должен использоваться при написании нетекстовых файлов, таких как изображения.

Рекомендации:

https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files https://docs.python.org/3/library/functions.html#open

Ответ 3

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

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

Ответ 4

Также следует использовать open вместо file. file был устаревшим в Python 2 (не смог найти какую версию) и был удален в py3k. (спасибо Скотту)

Подробнее см. этот вопрос.