1

,i've got an issue with this pair of lines, coded in Python:

#File name spacchetta_N_zip.py

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

I'm sure i'm opening a .tar.gz archive.

I really don't know what's wrong, i've surfed the web and this would work... but i got this error:

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

Help me please

FrancescoN
  • 2,146
  • 12
  • 34
  • 45
  • 8
    *I'm sure i'm opening a .tar.gz archive.* - I'm pretty sure you're not. If you print the value of `i`, what does it say? And if you do `file foo.tar.gz` on the command line, what does that say? – Lukas Graf Nov 24 '13 at 15:42
  • **print i** prints me "namefile.tar.gz" and **file namefile.tar.gz** prints me "gzippedFile.tar.gz: POSIX tar archive (GNU)" – FrancescoN Nov 24 '13 at 16:01
  • 6
    So it is not a `tar.gz` file... Otherwise it would print `gzippedFile.tar.gz: gzip compressed data` Your file is a tar archive, but not a compressed tar archive. – damienfrancois Nov 24 '13 at 16:17
  • just a hint: when you open a `tar.gz` for reading, you don't relly have to specify `'r:gz'`, as `r` is the default, and compressed archives are detected automatically. – mata Nov 24 '13 at 16:22
  • Thank you guys... i don't know how i created that .tar.gz, but i RE-created another one and now **it works** fine.. i can't believe because the old file got the .tar.gz firm on the icon (i'm on Ubuntu). Thank you all guys – FrancescoN Nov 24 '13 at 16:41
  • I have a vaue recollection of having once seen a web browser decompress .gz files automatically -- that's one way you could download a .tar.gz but get something that's really just a .tar on-disk. – Charles Duffy Jul 22 '21 at 20:26

1 Answers1

0

You can try this.

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

I'm using centos and it's work. Hope this will help.

Arsench
  • 179
  • 2
  • 4
  • 17