12.5.3 Examples

##
12.5.3 Examples

How to extract an entire tar archive to the current working directory:

    import tarfile
    tar = tarfile.open("sample.tar.gz")
    tar.extractall()
    tar.close()

How to create an uncompressed tar archive from a list of filenames:

    import tarfile
    tar = tarfile.open("sample.tar", "w")
    for name in ["foo", "bar", "quux"]:
        tar.add(name)
    tar.close()

How to read a gzip compressed tar archive and display some member information:

    import tarfile
    tar = tarfile.open("sample.tar.gz", "r:gz")
    for tarinfo in tar:
        print tarinfo.name, "is", tarinfo.size, "bytes in size and is",
        if tarinfo.isreg():
            print "a regular file."
        elif tarinfo.isdir():
            print "a directory."
        else:
            print "something else."
    tar.close()

How to create a tar archive with faked information:

    import tarfile
    tar = tarfile.open("sample.tar.gz", "w:gz")
    for name in namelist:
        tarinfo = tar.gettarinfo(name, "fakeproj-1.0/" + name)
        tarinfo.uid = 123
        tarinfo.gid = 456
        tarinfo.uname = "johndoe"
        tarinfo.gname = "fake"
        tar.addfile(tarinfo, file(name))
    tar.close()

The only way to extract an uncompressed tar stream from `sys.stdin`:

    import sys
    import tarfile
    tar = tarfile.open(mode="r|", fileobj=sys.stdin)
    for tarinfo in tar:
        tar.extract(tarinfo)
    tar.close()