Python:打开zip文件,不带".zip"扩展名



我有一个名为"main.zip"的zip文件。在其中,我有另一个名为"meta"的zip,它没有".zip"扩展名。我想打开包含大量文本文件的"元"zip文件。但是当我尝试打开"元"zip文件时,我收到一个错误,说zipfile.BadZipfile: File is not a zip file.下面是我的代码:

zf = zipfile.ZipFile(inputZipFile, 'r')
print(zf.namelist())    # [u'meta']
zf2 = zipfile.ZipFile(zf.open('meta')) # throws error

我无法提取和打开"元",因为我想完全在内存中执行此操作而不写入磁盘。

我的最终目标是修改其中一个文本文件并输出一个新的zip。

如果您打算在内存中执行此操作,则需要创建一个类似文件的对象来调用zipfile.ZipFile。尽管ZipFile.open说它这样做,但实际上我遇到了与您相同的错误。

我的工作是用ZipFile.read读取二进制文件并将其扔到io.BytesIO流中。

import io
with zipfile.ZipFile("main.zip") as zf:
    f2 = io.BytesIO(zf.read("meta"))
    with zipfile.ZipFile(f2) as zf2:
        # this is inside the inner zip file

最新更新