获取压缩文件中包含的文件列表

103

我有一个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()
3个回答

134
你需要的是 ZipFile.namelist(),它会给你一个存档文件中所有内容的列表,然后你可以使用zip.open('filename_you_discover')来获取该文件的内容。

6
如果您想获取其他详细信息,例如修改日期或压缩大小,请使用infolist() - Nate Anderson
11
有没有一种方法可以返回文件名的迭代器而不是列表? - Elliott
https://gist.github.com/berezovskyi/c440125e10fc013a36f6f5feb8bc3117 是我为自己编写的一个简短的程序,以便将生成器用作for f in itertar(tarfile): - berezovskyi

69
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()

24
import zipfile

zip = zipfile.ZipFile('my_zip.zip')
f = zip.open('my_txt_file.txt')
contents = f.read()
f.close()

你可以在这里看到文档 链接。尤其是 namelist() 方法将给出zip文件成员的名称。


2
我得到一个错误,提示“档案中没有名为'<filename>'的项目”,请注意,我不知道被压缩的文件的名称(它与zip存档的名称不同)。 - David542

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接