我想用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存档。