获取zip文件中包含的文件的文件列表

Dav*_*542 55 python

我有一个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()
Run Code Online (Sandbox Code Playgroud)

小智 79

您需要的是ZipFile.namelist()为您提供存档的所有内容的列表,然后您可以执行a zip.open('filename_you_discover')以获取该文件的内容.

  • 或者如果你想获得其他细节,可以使用[`infolist()`](https://docs.python.org/2/library/zipfile.html#zipfile.ZipFile.infolist); 比如修改日期或压缩大小 (4认同)
  • 是否有一个方法将文件名作为迭代器而不是列表返回? (2认同)

J. *_*ron 32

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()
Run Code Online (Sandbox Code Playgroud)


Jam*_*olk 17

import zipfile

zip=zipfile.ZipFile('my_zip.zip')
f=zip.open('my_txt_file.txt')
contents=f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看文档.特别是,该namelist()方法将为您提供zip文件成员的名称.

  • 我收到一条错误消息,指出“存档中没有名为‘<文件名>’的项目”。请注意,我 ** 不知道 ** 压缩文件的名称是什么(它与 zip 存档的名称不同)。 (2认同)