获取 zip 文件中包含的文件的文件列表
Posted
技术标签:
【中文标题】获取 zip 文件中包含的文件的文件列表【英文标题】:get file list of files contained in a zip file 【发布时间】:2012-02-09 07:33:11 【问题描述】:我有一个 zip 存档:my_zip.zip
。 里面是一个txt文件,我不知道名字。我正在看Python的zipfile
模块(http://docs.python.org/library/zipfile.html),但无法理解是什么我正在努力。
我将如何执行相当于“双击”zip 文件以获取 txt 文件然后使用 txt 文件的操作:
>>> f = open('my_txt_file.txt','r')
>>> contents = f.read()
【问题讨论】:
【参考方案1】:import zipfile
# zip file handler
zip = zipfile.ZipFile('filename.zip')
# list available files in the container
print (zip.namelist())
# extract a specific file from the zip container
f = zip.open("file_inside_zip.txt")
# save the extraced file
content = f.read()
f = open('file_inside_zip.extracted.txt', 'wb')
f.write(content)
f.close()
【讨论】:
【参考方案2】:import zipfile
zip=zipfile.ZipFile('my_zip.zip')
f=zip.open('my_txt_file.txt')
contents=f.read()
f.close()
您可以查看文档here。特别是,namelist()
方法将为您提供 zip 文件成员的名称。
【讨论】:
我收到一条错误消息,提示“存档中没有名为 '您需要的是ZipFile.namelist()
,它将为您提供存档所有内容的列表,然后您可以通过zip.open('filename_you_discover')
获取该文件的内容。
【讨论】:
如果您想获取其他详细信息,请使用infolist()
;比如修改日期或压缩大小
有没有将文件名作为迭代器而不是列表返回的方法?
gist.github.com/berezovskyi/c440125e10fc013a36f6f5feb8bc3117 是我为自己编写的一个简短的 hack,用于将生成器用作 for f in itertar(tarfile):
以上是关于获取 zip 文件中包含的文件的文件列表的主要内容,如果未能解决你的问题,请参考以下文章