是否可以在不解压缩Python的情况下删除.zip文件中的文件?

问题描述

我有一个.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。