Python 如何迭代zip文件夹中的文件而不提取它们?

Python 如何迭代zip文件夹中的文件而不提取它们?,python,zip,zipfile,Python,Zip,Zipfile,我有一个zip格式的大数据集,我无法直接解压缩它,因为我的机器上所需的空间远远不够。我正在尝试编写一个程序,该程序将遍历zip文件中的文件,并在将其复制到另一个文件夹时将其删除。遗憾的是,os.listdir没有任何帮助,我想知道zipfile中是否有一个模块允许我这样做?这里有一个链接,提供了Linux/MacOs命令,用于查看zip文件的内容,而无需提取: 您可以使用os.system(它基本上通过python脚本执行终端命令)来获取zip的内容。该链接提供了unzip-l archive.

我有一个zip格式的大数据集,我无法直接解压缩它,因为我的机器上所需的空间远远不够。我正在尝试编写一个程序,该程序将遍历zip文件中的文件,并在将其复制到另一个文件夹时将其删除。遗憾的是,
os.listdir
没有任何帮助,我想知道
zipfile
中是否有一个模块允许我这样做?

这里有一个链接,提供了Linux/MacOs命令,用于查看zip文件的内容,而无需提取:

您可以使用os.system(它基本上通过python脚本执行终端命令)来获取zip的内容。该链接提供了
unzip-l archive.zip
来列出文件,而无需解压缩。您还可以使用
解压-c archive.zip
来获取文件的内容

这将列出文件,而无需在终端中解压缩

import os
os.system(unzip -l archive.zip) 
如果要获取python脚本要使用的列表中的文件名,请尝试以下操作:

# import this module (available with vanilla python install)
import subprocess

# calls command and pipes results
process = subprocess.Popen(['unzip -c archive.zip'], shell=True, stdout=subprocess.PIPE)

# unpacks the results into a list
files = process.communicate()[0]
files = files.decode()
files = files.split("\n")
这使用子流程模块和Popen函数通过终端运行命令,并通过管道返回python以供使用