using python with tar files and compressed files

John Machin sjmachin at lexicon.net
Wed Aug 9 20:55:18 EDT 2006


enigmadude at rock.com wrote:
> This syntax works on other bzipped tar files. But it's not unheard of
> that large tarballs will get corrupted from a download mirror. Use a
> download manager and try redownloading the file. Usually a mirror will
> include an md5sum text file so that you can compare the checksum to
> your downloaded file to verify its integrity. For some reason, the
> wxPython site doesn't have them.
>
> John Salerno wrote:
> > Here's the name of a file I have: wxPython-newdocs-2.6.3.3.tar.bz2
> >
> > Now, I tried this:
> >
> > import tarfile
> > tar = tarfile.open('wxPython-newdocs-2.6.3.3.tar.bz2', 'r:bz2')
> >
> > but got this:
> >
> > Traceback (most recent call last):
> >    File "<pyshell#5>", line 1, in -toplevel-
> >      tar = tarfile.open('wxPython-newdocs-2.6.3.3.tar.bz2', 'r:bz2')
> >    File "C:\Python24\lib\tarfile.py", line 901, in open
> >      return func(name, filemode, fileobj)
> >    File "C:\Python24\lib\tarfile.py", line 1006, in bz2open
> >      raise ReadError, "not a bzip2 file"
> > ReadError: not a bzip2 file
> >
> > So I'm a little confused. When dealing with a tar.gz or tar.bz2 file, do
> > you need to uncompress it first with the proper module (gzip or bz2)? Or
> > does tarfile take care of this? If so, why doesn't it recognize the
> > above file? Or am I just doing it the wrong way? (I'm following an
> > example in the docs)

Another check on download corruption would be to use the "test
integrity" option on the stand-alone bzip2 executable [which may
already be on your machine, or can be obtained (directly or in source
which you'd compile) from www.bzip2.org]:

bzip2 -t yourfile

HTH,
John




More information about the Python-list mailing list