我编写了一些Python代码,用于从网络中获取zip文件并转换为字符串:
In [1]: zip_contents[0:5]
Out[1]: 'PK\x03\x04\x14'
我看到有一个zipfile库,但我在找到一个函数时遇到麻烦,我只能传递一堆原始zip数据。它似乎想从文件中读取它。
我真的需要将其转储到临时文件中,还是有办法解决它?
答案 0 :(得分:32)
zipfile.ZipFile
接受任何类似文件的对象,因此您可以使用StringIO
(2.x)或BytesIO
(3.x):
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
import zipfile
fp = StringIO('PK\x03\x04\x14')
zfp = zipfile.ZipFile(fp, "r")
答案 1 :(得分:6)
将字符串包裹在cStringIO对象中。它像文件对象一样查看,操作和嘎嘎叫,但驻留在内存中。