代码:
file('pinax/media/a.jpg', 'wb')
答案 0 :(得分:81)
File mode,写和二进制。由于你正在写一个.jpg文件,它看起来很好。
但是如果你想阅读那个jpg文件,你需要使用'rb'
更多信息
在Windows上,“b”附加到模式 以二进制模式打开文件,所以 还有像'rb','wb'这样的模式, 和'r + b'。 Windows上的Python制作了一个 文本和二进制之间的区别 文件;中的行尾字符 文本文件会自动更改 稍微读取或写入数据时。 这种幕后修改 文件数据适用于ASCII文本 文件,但它会破坏二进制数据 像在JPEG或EXE文件中一样。
答案 1 :(得分:53)
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
答案 2 :(得分:5)
这是您打开文件的模式。 “wb”表示您正在写入文件(w),并且您正在以二进制模式写入(b)。
查看文档了解更多信息:clicky