Welcome, guest | Sign In | My Account | Store | Cart
import os
import sys
import tarfile

def main():
    total = untar(sys.argv[1:])
    if total:
        args = total, total > 1 and 's were' or ' was'
        sys.stdout.write('Report: %s file%s untared.' % args)
    else:
        filename = os.path.basename(sys.argv[0])
        sys.stdout.write('Usage: %s <file_or_dir> ...' % filename)

def untar(paths):
    total = 0
    for path in paths:
        if os.path.isdir(path):
            try:
                dir_list = os.listdir(path)
            except:
                pass
            else:
                total += untar(os.path.join(path, new) for new in dir_list)
        elif os.path.isfile(path):
            try:
                tarfile.open(path).extractall(os.path.dirname(path))
            except:
                pass
            else:
                total += 1
    return total

if __name__ == '__main__':
    main()

History