我正在使用一个检索媒体的 API,但该 API 将媒体作为字节串返回...我想将字节串保存为图像。我该怎么做呢?
我试过这个:
data = *bytestring*
f = open('image.jpg','w')
f.write(str(data))
f.close()
Run Code Online (Sandbox Code Playgroud)
编译成功,但是当我检查 image.jpg 时...它是空的或“无法打开,因为它是未知格式”
尝试:
f = open('image.jpg','wb')
f.write(data)
f.close()
Run Code Online (Sandbox Code Playgroud)
为什么?默认情况下,python 将其结尾的行转换为底层平台使用的内容(例如,在 Windows 上,它转换'\n'为'\n\r'),这会搞砸您的文件。
它始终将文件视为文本文件,除非您通过在 open() 中添加 'b' 选项来明确告知其二进制文件。如果您使用“b”选项,它将不会转换行结尾。
对于语法方面,最好这样写(即使出现异常,它也会关闭文件):
with open('image.jpg','wb') as f:
f.write(data)
Run Code Online (Sandbox Code Playgroud)