在这段Python代码中,'wb'是什么意思?

164 投票
5 回答
456214 浏览
提问于 2025-04-15 21:46

代码:

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

5 个回答

9

这就是你打开文件时使用的模式。"wb"的意思是你要往文件里写东西(w),而且是以二进制的方式写(b)。

想了解更多,可以查看文档:点这里

120

wb表示这个文件是以二进制模式打开的,用来写入数据。

在二进制模式下,Python写入文件时不会对数据进行任何修改。相反,如果是文本模式(比如只用w或者用wt指定文本模式),Python会根据默认的文本编码来处理文本。此外,Python还会把换行符(\n)转换成适合当前平台的换行符,这样会导致像exepng这样的二进制文件被损坏。

因此,写文本文件时应该使用文本模式(无论是普通文本还是像CSV这样的文本格式),而写非文本文件(比如图片)时必须使用二进制模式。

参考资料:

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

164

文件模式有很多种,比如写入模式和二进制模式。因为你要写一个 .jpg 文件,所以这样做是没问题的。

但是如果你想读取那个 jpg 文件,就需要用 'rb' 这个模式。

更多信息

在 Windows 系统上,模式后面加个 'b' 就是以二进制模式打开文件,所以会有像 'rb'、'wb' 和 'r+b' 这样的模式。Python 在 Windows 上会区分文本文件和二进制文件;在读取或写入文本文件时,文件中的换行符会被自动稍微修改一下。这个在后台进行的修改对于 ASCII 文本文件来说没问题,但如果是 JPEG 或 EXE 这样的二进制数据,就会导致数据损坏。

撰写回答