Read .tar.gz file in Python Read .tar.gz file in Python python python

Read .tar.gz file in Python


The docs tell us that None is returned by extractfile() if the member is a not a regular file or link.

One possible solution is to skip over the None results:

tar = tarfile.open("filename.tar.gz", "r:gz")for member in tar.getmembers():     f = tar.extractfile(member)     if f is not None:         content = f.read()


tarfile.extractfile() can return None if the member is neither a file nor a link. For example your tar archive might contain directories or device files. To fix:

import tarfileimport numpy as np tar = tarfile.open("filename.tar.gz", "r:gz")for member in tar.getmembers():     f = tar.extractfile(member)     if f:         content = f.read()         Data = np.loadtxt(content)


You may try this one

t = tarfile.open("filename.gz", "r")for filename in t.getnames():    try:        f = t.extractfile(filename)        Data = f.read()        print filename, ':', Data    except :        print 'ERROR: Did not find %s in tar archive' % filename