Python 应为字符串参数,获得';字节';在buffer.write中
我有这个:Python 应为字符串参数,获得';字节';在buffer.write中,python,file,Python,File,我有这个: from io import StringIO buffer = StringIO() latest_file = 'C:\\Users\\miguel.santos\\Desktop\\meo_snapshots\\Snapshot_14.jpg' buffer.write(open(latest_file,'rb').read()) TypeError: string argument expected, got 'bytes' 关于如何解决这个问题有什么想法吗?io.S
from io import StringIO
buffer = StringIO()
latest_file = 'C:\\Users\\miguel.santos\\Desktop\\meo_snapshots\\Snapshot_14.jpg'
buffer.write(open(latest_file,'rb').read())
TypeError: string argument expected, got 'bytes'
关于如何解决这个问题有什么想法吗?
io.StringIO
是unicode文本,它的字节对应物是io.BytesIO
。由于您的非隐藏文件是二进制jpg,因此您确实应该使用后者:
from io import BytesIO
buffer = BytesIO()
latest_file = 'C:\\Users\\miguel.santos\\Desktop\\meo_snapshots\\Snapshot_14.jpg'
buffer.write(open(latest_file,'rb').read())
不要使用
rb
,因为它会给你bytes
对象,使用r
@zipa可能,更一致的做法是不对二进制数据使用StringIO
(我认为很难使用r'
读取JPEG文件)。实际上,py3中的io.BytesIO与py2中的cStringIO.StringIO相对应。