如果在Python字符串中有zipfile的内容,我可以在不将其写入文件的情况下对其进行解压缩吗?

2024-05-15 09:22:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一些Python代码,从web上获取一个zip文件并将其转换成一个字符串:

In [1]: zip_contents[0:5]
Out[1]: 'PK\x03\x04\x14'

我看到有一个zipfile库,但是在其中找不到一个函数,我只能传递一堆原始的zip数据。它似乎想从文件中读取它。

我真的需要把它转储到一个临时文件中,还是有办法解决这个问题?


Tags: 文件数据函数字符串代码inwebcontents
2条回答

将字符串包装在cStringIO对象中。它看起来、行为和嘎嘎作响像一个文件对象,但驻留在内存中。

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")

相关问题 更多 >