操作
12章学習記録 » 履歴 » リビジョン 1
リビジョン 1/4
| 次 »
Tatsuya ISHIGAKI, 2025/07/25 03:03
12.3 tar ファイルを扱う tarfile¶
gzip, bz2, lzma 形式で圧縮されたものを含む、tar 形式アーカイブを読み書きする
- tar ファイルを操作する
-
関数
open(name=None, mode='r', fileobj=None, bufsize=20240, **kwargs)-
nametar ファイルのファイル名 -
modeモード指定rw等- 圧縮形式を指定する場合は
r:gzw:xz等 (非圧縮指定はw:等) - 読み込み時は
rだけでも、ファイル名拡張子から圧縮形式が自動判定される - 圧縮ファイルは追記モードが使用できない (
aa:のみ)
- 圧縮形式を指定する場合は
-
fileobjtar ファイルのファイルオブジェクト -
bufsizeブロックサイズ (デフォルトでよい) -
戻り値
tarfile.TarFile
-
-
関数
is_tarfile(name)-
nameファイル名、または file-like オブジェクト - 戻り値 (bool) 指定ファイルが tar 形式アーカイブなら True
-
-
TarFileオブジェクトのメソッドメソッド名 解説 戻り値 getnames()tar ファイル内にアーカイブされているファイル名リスト list getmember(name)指定ファイル名の TarInfoを返すTarInfo getmembers()tar ファイル内にアーカイブされている全ファイルの TarFileのリストを返すlist extract(member, path="", set_attrs=True, *, numeric_owner=False)指定ファイルを指定場所へ展開 member:ファイル名またはTarInfoNone extractall(path="", set_attrs=True, *, numeric_owner=False)全ファイルを指定場所へ展開 None extractfile(member)指定ファイルを開き、ファイルオブジェクトを返す member:ファイル名またはTarInfoファイルオブジェクト add(name, arcname=None, recursive=True, exclude=None, *, filter=None)指定ファイルを tar ファイルのアーカイブへ追加する arcnameを指定するとそのファイル名で追加
ディレクトリ指定では再帰追加可能? close()None >>> import tarfile >>> with tarfile.open("./testarchive.tar", "w:gz") as f: ... f.add("./inArchive1.txt") ... >>> with tarfile.open("./testarchive.tar") as f: ... f.getnames() ... f.getmembers() ... ['./inArchive1.txt'] [<TarInfo './inArchive1.txt' at 0x140b4104640>] >>> with tarfile.open("./testarchive.tar") as f: ... with f.extractfile("./inArchive1.txt") as elem: ... elem.read().decode("sjis") ... 'アーカイブ内ファイル1' >>> with tarfile.open("./testarchive.tar") as f: ... info = f.getmember("./inArchive1.txt") ... info ... print(f"{info.name=}, {info.size=}, {info.mtime=}, {info.mode=:o}") ... <TarInfo './inArchive1.txt' at 0x140b4104940> info.name='./inArchive1.txt', info.size=22, info.mtime=1753410842.0, info.mode=666 >>> with tarfile.open("./testarchive.tar") as f:
-
Tatsuya ISHIGAKI さんが5ヶ月前に更新 · 4件の履歴