открыть архивы .tar.gz в python

у меня проблема с этой парой строк, закодированных на Python:

#File name spacchetta_N_zip.py

import tarfile
import gzip
    with tarfile.TarFile.open(i, 'r:gz') as tarredgzippedFile:
                        tarredgzippedFile.extractall(cartella)

Я уверен, что открываю архив .tar.gz.

Я действительно не знаю, что не так, я просматривал Интернет, и это сработало... но я получил эту ошибку:

File "spacchetta_N_zip.py", line 70, in Spacchetta
    with tarfile.TarFile.open(i, 'r:gz') as tarredgzippedFile:
  File "/usr/lib/python2.7/tarfile.py", line 1678, in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1729, in gzopen
    raise ReadError("not a gzip file")
tarfile.ReadError: not a gzip file

Помоги мне, пожалуйста


person FrancescoN    schedule 24.11.2013    source источник
comment
Я уверен, что открываю архив .tar.gz. - Я почти уверен, что это не так. Если вы напечатаете значение i, что оно скажет? И если вы сделаете file foo.tar.gz в командной строке, что это скажет?   -  person Lukas Graf    schedule 24.11.2013
comment
print i выводит файл namefile.tar.gz, а file namefile.tar.gz выводит gzippedFile.tar.gz: tar-архив POSIX (GNU)   -  person FrancescoN    schedule 24.11.2013
comment
Значит, это не файл tar.gz... В противном случае будет напечатано gzippedFile.tar.gz: gzip compressed data Ваш файл представляет собой tar-архив, но не сжатый tar-архив.   -  person damienfrancois    schedule 24.11.2013
comment
просто подсказка: когда вы открываете tar.gz для чтения, вам не обязательно указывать 'r:gz', так как r используется по умолчанию, а сжатые архивы обнаруживаются автоматически.   -  person mata    schedule 24.11.2013
comment
Спасибо, ребята... я не знаю, как я создал этот .tar.gz, но я заново создал другой, и теперь он работает нормально.. я не могу поверить, потому что старый файл получил фирму .tar.gz на значке (я на Ubuntu). Спасибо всем ребята   -  person FrancescoN    schedule 24.11.2013
comment
Я плохо помню, как однажды видел, как веб-браузер автоматически распаковывал файлы .gz — это один из способов загрузить .tar.gz, но получить что-то, что на самом деле является просто .tar на диске.   -  person Charles Duffy    schedule 22.07.2021


Ответы (1)


Вы можете попробовать это.

tar = tarfile.open("FILE_NAME.tar.gz")
tar.extractall()
tar.close()

Я использую Centos, и это работает. Надеюсь, это поможет.

person Arsench    schedule 11.06.2018