问题描述
我有一个.zip文件,其中包含约26k个图像文件。我有一个要保存在.zip文件中的文件列表
我想知道是否有可能使用Python 3在不解压缩实际文件夹的情况下删除该.zip中不在我的文件列表中的文件(因为这会占用我的计算机太多空间)。
我对此一无所获,想知道是否有人知道我可以做到这一点的方式
谢谢!
解决方法
您可以使用zipfile
。它包含在python中。这是一个示例,我从my-file.zip
中提取了3个文件。
import zipfile
files = ['1.txt','2.txt','3.txt']
with zipfile.ZipFile('my-file.zip','r') as file:
for f in files:
file.extract('path-to-file/' + f)
,
Python的标准库不支持更改现有的zip存档,我在PyPI中看不到任何可能的候选对象。
zip
实用程序可以从存档(-d
)中删除文件,因此您也许可以使用Python编写脚本。
另一种选择是基于现有的zip存档创建一个新的zip存档,然后跳过不需要的文件。不需要将任何文件提取到磁盘,但是可能会占用大量CPU。