这段代码中的“wb”是什么意思,使用 Python?

新手上路,请多包涵

代码:

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

原文由 zjm1126 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

文件模式,写入和二进制。由于您正在编写一个 .jpg 文件,因此它看起来不错。

但是,如果您应该阅读该 jpg 文件,则需要使用 'rb'

更多信息

在 Windows 上,附加到模式的 ‘b’ 以二进制模式打开文件,因此也有像 ‘rb’、’wb’ 和 ‘r+b’ 这样的模式。 Windows 上的 Python 区分文本文件和二进制文件;读取或写入数据时,文本文件中的行尾字符会自动略微更改。这种对文件数据的幕后修改适用于 ASCII 文本文件,但它会损坏二进制数据,例如 JPEG 或 EXE 文件中的二进制数据。

原文由 YOU 发布,翻译遵循 CC BY-SA 2.5 许可协议

wb 表示文件以二进制模式打开写入。

当以二进制模式写入时,Python 在将数据写入文件时不会对数据进行任何更改。在文本模式下(当 b 被排除在 w 或者当你使用 wt 指定文本模式时,Python 将对文本进行编码)默认文本编码。此外,Python 会将行结尾 ( \n ) 转换为平台特定的行结尾,这会损坏二进制文件,如 exepng file .

因此,在编写文本文件时应使用文本模式(无论是使用纯文本还是基于文本的格式,如 CSV),而在编写非文本文件如图像时,必须使用二进制模式。

参考:

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

原文由 Daniel G 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题