Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我有一个Python字符串中的zipfile内容,我可以在不将其写入文件的情况下解压它吗?_Python - Fatal编程技术网

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

如果我有一个Python字符串中的zipfile内容,我可以在不将其写入文件的情况下解压它吗?,python,Python,我编写了一些Python代码,可以从web获取zip文件并将其转换为字符串: In [1]: zip_contents[0:5] Out[1]: 'PK\x03\x04\x14' 我看到有一个zipfile库,但我很难在其中找到一个只需传递一堆原始zip数据的函数。它似乎想从文件中读取它 我真的需要将其转储到临时文件中吗?或者有办法解决吗?将字符串包装到对象中。它的外观、行为和嘎嘎声都类似于文件对象,但驻留在内存中。zipfile.zipfile接受任何类似文件的对象,因此您可以使用Strin

我编写了一些Python代码,可以从web获取zip文件并将其转换为字符串:

In [1]: zip_contents[0:5]
Out[1]: 'PK\x03\x04\x14'
我看到有一个zipfile库,但我很难在其中找到一个只需传递一堆原始zip数据的函数。它似乎想从文件中读取它


我真的需要将其转储到临时文件中吗?或者有办法解决吗?

将字符串包装到对象中。它的外观、行为和嘎嘎声都类似于文件对象,但驻留在内存中。

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