Подтвердить что ты не робот

Получить список файлов, содержащихся в zip файле

У меня есть архив 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()
4b9b3361

Ответ 1

Что вам нужно, ZipFile.namelist(), который предоставит вам список всего содержимого архива, вы можете сделать zip.open('filename_you_discover'), чтобы получить содержимое этого файла.

Ответ 2

import zipfile

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

Здесь вы можете увидеть документацию . В частности, метод namelist() даст вам имена членов zip файла.

Ответ 3

import zipfile

zip = zipfile.ZipFile('filename.zip')

# available files in the container
print (zip.namelist())


# extract a specific file from zip 
f=zip.open("file_inside_zip.txt")
content = f.read()
f = open('extracted.txt', 'wb')
f.write(content)
f.close()

Ответ 4

этот пример почти поражает все гвозди на голове для меня... Однако, как бы я открыл определенный файл в папке zip, когда его имя постоянно меняется в зависимости от новых дат? Например, файл с именем "MM-DD-YY-MyFileStaticName" На основе статических символов, т.е. "MyFileStaticName" в имени файла, моя цель состоит в том, чтобы открыть только этот файл из файлов dozen+, содержащихся в папке zip. Тем не менее, часть даты изменения имени файла ставит меня в тупик из-за того, как я могу сделать это автоматическим процессом... Мой фон с использованием SQL, я думаю о том, что LIKE '% MyFileStaticName%' как нечто, что могло бы работать, но я не уверен, что Python или модуль zipfile.Zipfile имеют аналогичные возможности? Любые предложения будут с благодарностью!

Энди