获取远程zip文件并列出其中的文件列表。

4
我正在开发一个小型Google App Engine项目,需要从URL获取远程zip文件,然后列出zip存档中包含的文件。
我正在使用zipfile模块。
以下是我目前想到的代码:
# fetch the zip file from its remote URL
result = urlfetch.fetch(zip_url)

# store the contents in a stream
file_stream = StringIO.StringIO(result.content)

# create the ZipFile object
zip_file = zipfile.ZipFile(file_stream, 'w')

# read the files by name
archive_files = zip_file.namelist()

不幸的是,archive_files 列表始终为长度为0。

你有什么想法我哪里做错了吗?

2个回答

7

您正在使用w权限打开文件,这会将其截断。请改为r权限以进行读取:

zip_file = zipfile.ZipFile(file_stream, 'r')

参考资料:http://docs.python.org/library/zipfile.html#zipfile-objects

该文档介绍了Python的zipfile模块中的zipfile对象。zipfile对象可用于创建、读取和解压缩ZIP文件。它提供了一组方法来管理ZIP文件中的文件和目录,包括获取文件列表、添加文件、删除文件等。此外,它还提供了一些属性来获取ZIP文件的信息,例如注释、压缩比率等。


1

您正在尝试以写模式打开ZipFile。请改为读模式。


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