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

时间:2011-04-24 12:27:13

标签: python google-app-engine zip

我正在开发一个小型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 个答案:

答案 0 :(得分:6)

您正在使用w权限打开文件,这会截断它。将其更改为r阅读权限:

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

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

答案 1 :(得分:1)

您正在打开ZipFile进行撰写。请尝试阅读。