在Python中的zip文件中搜索()一个文件而不将其传递给内存

时间:2012-10-10 14:34:50

标签: python zip zipfile seek

无论如何

是否可以在一个zip文件中创建一个可以在Python中查找的文件,而无需将其读入内存?

我尝试了明显的程序,但由于文件不可搜索,我收到错误:

In [74]: inputZipFile = zipfile.ZipFile("linear_g_LAN2A_F_3keV_1MeV_30_small.zip", 'r')

In [76]: inputCSVFile = inputZipFile.open(inputZipFile.namelist()[0], 'r')   

In [77]: inputCSVFile
Out[77]: <zipfile.ZipExtFile at 0x102f5fad0>

In [78]: inputCSVFile.se
inputCSVFile.seek      inputCSVFile.seekable  

In [78]: inputCSVFile.seek(0)
---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-78-f1f9795b3d55> in <module>()
----> 1 inputCSVFile.seek(0)

UnsupportedOperation: seek

2 个答案:

答案 0 :(得分:9)

所有zip文件都无法执行此操作。 DEFLATE是一种流压缩算法,这意味着没有解压缩文件的任意部分而不解压缩之前的所有内容。 可能可能已经存储了已经存储的文件,但是你会处于不利的位置,其中一些条目是可以搜索的,而其他条目则不是。

答案 1 :(得分:1)