非圧縮 tar アーカイブをファイル名のリストから作成する方法:
import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()
gzip 圧縮 tar アーカイブを作成してメンバー情報のいくつかを表示する方法:
import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print tarinfo.name, " は 大きさが ", tarinfo.size, "バイトで ", if tarinfo.isreg(): print "普通のファイルです。" elif tarinfo.isdir(): print "ディレクトリです。" else: print "ファイル・ディレクトリ以外のものです。" tar.close()
見せかけの情報を持つ tar アーカイブを作成する方法:
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()
非圧縮 tar ストリームをsys.stdin
から抽出する
唯一の方法:
import sys import tarfile tar = tarfile.open(mode="r|", fileobj=sys.stdin) for tarinfo in tar: tar.extract(tarinfo) tar.close()