非圧縮 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()