zip 已在 python 中打开文件

zip already opened files in python

我想压缩 python 中打开的文件列表。 ZipFile 和 shutil 等库只有在您指定文件路径时才能压缩文件,而不是给它们文件本身。我想避免像保存每个文件并使用 ZipFile 或 shutil 读取它这样的解决方法,因为有些文件可能非常大,这会很耗时。

使用 ZipFile.writestr 似乎可以实现这一点(另请参阅 documentation

from zipfile import ZipFile

with ZipFile('spam.zip', 'w') as myzip:
    myzip.writestr('test.txt', 'test')

zip_file = ZipFile('spam.zip', 'r')
zip_file.namelist()


['test.txt']

从源代码来看,它似乎没有保存到临时文件,而是直接写入 zip 存档。