восстановить файлы из .gzip с помощью Python

Я хочу сделать это:

у меня есть несколько архивов .gzip, и я хочу извлечь из них все файлы. Но модуль gzip не позволяет мне получить имя каждого файла внутри архива .gzip, и я хочу восстановить каждый файл со своим старым именем, я не хочу переназначать новое имя .

zipFile не имеет этой проблемы, и tarfile тоже: tarfile также имеет пару методов, которые работают с .tar.gz,... но не только для .gz архивов, правда?

Я немного запутался, впервые работаю с архивами, не могли бы вы мне помочь?

РЕДАКТИРОВАТЬ :: я уверен, что это возможно ... потому что, если я могу сделать это через графический интерфейс, должна быть библиотека и метод / функция .... ммх, но, может быть, это C, а не Python ?!

2EDIT ::

...
elif tarfile.is_tarfile(i) and i.endswith('.tar.gz'):
    ...
    with tarfile.TarFile.gzopen(i, 'r') as tarredgzippedFile:

Затем внутри оператора with я буду использовать код из модуля gzip, правда? Спасибо


person FrancescoN    schedule 22.11.2013    source источник
comment
Что вы подразумеваете под архивами .gz? Вы имеете в виду архивы .tar.gz? Формат gzip (.gz) не является форматом архива. Он хранит только один сжатый поток. Он не хранит несколько файлов. В формате .tar хранится несколько файлов, а .tar.gz — это tar-архив, сжатый с помощью gzip.   -  person Mark Adler    schedule 23.11.2013
comment
Да, ты прав; я сделал большую ошибку, .gzip не является архивом, так что это объясняет мне все! Последняя проблема: проверьте 2EDIT, который я собираюсь написать   -  person FrancescoN    schedule 23.11.2013


Ответы (1)


Может быть, мой ответ глуп, но вам действительно нужно делать это с Python? Возможно, вы можете обратиться к обычным инструментам оболочки * nix:

tar -xvf *.gz

Я полагаю, что это может быть не только проще, но и быстрее, чем программа на Python. Вы даже можете вызвать эту команду оболочки из Python.

person Anatoly Scherbakov    schedule 22.11.2013
comment
моя цель заключалась в том, чтобы достичь цели с помощью модулей python - person FrancescoN; 23.11.2013