我想尝试python BytesIO类。
作为实验,我尝试写入内存中的zip文件,然后从该zip文件中读取字节。因此,我没有将文件对象传递给gzip
,而是传递了BytesIO
对象。这是整个脚本:
from io import BytesIO
import gzip
# write bytes to zip file in memory
myio = BytesIO()
g = gzip.GzipFile(fileobj=myio, mode='wb')
g.write(b"does it work")
g.close()
# read bytes from zip file in memory
g = gzip.GzipFile(fileobj=myio, mode='rb')
result = g.read()
g.close()
print(result)
但是它为
bytes
返回了一个空的result
对象。在Python 2.7和3.4中都会发生这种情况。我想念什么? 最佳答案
在将初始文件写入内存文件后,需要将 seek
返回到文件的开头...
myio.seek(0)
关于python - 写入然后读取内存字节(BytesIO)会得到空白结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26879981/