我想尝试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/

10-11 09:28