Получите удаленный zip-файл и перечислите файлы в - PullRequest
3 голосов
/ 24 апреля 2011

Я работаю над небольшим проектом Google App Engine, в котором мне нужно извлечь удаленный zip-файл из URL-адреса, а затем перечислить файлы, содержащиеся в 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 ]

6 голосов
/ 24 апреля 2011

Вы открываете файл с разрешениями w, который его усекает. Измените его на r разрешения на чтение:

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

Ссылка: http://docs.python.org/library/zipfile.html#zipfile-objects

1 голос
/ 24 апреля 2011

Вы открываете ZipFile для записи.Попробуйте вместо этого читать.

...