ライブラリtarfileを使うと、tarアーカイブファイルの圧縮・展開を行えます。
open(name=None, mode='r', fileobj=None, bufsize=10240, **kwargs)
でTarFileオブジェクトを作成後、ファイルを追加してtarアーカイブファイルを作成する。
既存のファイルを追加する場合はadd
、
バイト配列からファイルを作成する場合はaddfile
を使う。
import tarfile
import io
with tarfile.open('./sample.tar.gz', 'w:gz') as f:
f.add('./sample1.txt')
f.add('./sample2.txt')
f.add('./dir1/sample3.txt')
bio = io.BytesIO()
bio.write('テストファイル'.encode('utf-8'))
tarinfo = tarfile.TarInfo("sample4.txt")
tarinfo.size = bio.tell()
bio.seek(0)
f.addfile(tarinfo, bio)
f.close()
with tarfile.open('./sample.tar.gz', 'r') as f:
print(f.getmembers())
print(f.getnames())
print(f.getmember("./sample1.txt"))
f.extractall('extracted_tar')
f.close()
tarfile.openに指定できるmodeは以下の通り。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント