tarは、標準配布のtarfileモジュールを使って非常に簡単に扱える。無圧縮のtar、gzip圧縮したtar、bz2圧縮したtarが扱えるようだ。(Python2.5)
tarfile.openで新しいtarファイルを作り、ファイルのフルパスないし相対パス名をどんどんaddしていけばよい。
import os
import tarfile
th = tarfile.open('test.tar', 'w')
#th = tarfile.open('test.tar.bz2', 'w:bz2') <--- こっちを有効にするとbz2圧縮
for root, dirs, files in os.walk(r'c:\windows\media'):
for f in files:
fullpath = os.path.join(root, f)
print fullpath
th.add(fullpath)
th.close()
ファイルを取り出すには、rオプションで開いて、extractでひとつづつ展開する。一度に展開するextactallもあるけど。
import tarfile
th = tarfile.open('test.tar', 'r')
#th = tarfile.open('test.tar.bz2', 'r:bz2')
for item in th:
print item
th.extract(item)
th.close()

0 コメント:
コメントを投稿