7.19.1 TarFile オブジェクト

TarFile オブジェクトは、tar アーカイブへのインターフェースを提供します。 tar アーカイブは一連のブロックです。アーカイブメンバー(保存されたファイル)は、 ヘッダーブロックとそれに続くデータブロックから構成されています。ある tar アーカイブに ファイルを何回も保存することができます。各アーカイブメンバーは、 TarInfo オブジェクトによって表わされます、詳細については TarInfo オブジェクト (セクション 7.19.2)を見て下さい。

class TarFile( [name [, mode[, fileobj]]])
(非圧縮の) tar アーカイブ nameをオープンします。 mode は、既存のアーカイブから読み込むには 'r' 、 既存のファイルにデータを追加するには 'a'、あるいは既存のファイルを 上書きして新しいファイルを作成するには 'w' のどれかです。mode のデフォールトは 'r'です。

もし fileobjが与えられていれば、それを使ってデータを読み書きします。 もしそれが決定できれば、modefileobj のモードで上書きされます。.

注意: fileobj は、TarFileをクローズする時は、クローズされません。

open( ...)
代替コンストラクタです。モジュールレベルでの open() 関数は、 実際はこのクラスメソッドへのショートカットです。詳細については セクション 7.19 を見て下さい。

getmember( name)
メンバー name に対する TarInfo オブジェクトを返します。 もし nameがアーカイブに見つからなければ、KeyErrorが発生します。
注意: もしメンバーがアーカイブに1つ以上あれば、その最後に出現する ものが、最新のバージョンであるとみなされます。

getmembers( )
TarInfo オブジェクトのリストとしてアーカイブのメンバーを返します。 このリストはアーカイブ内のメンバーと同じ順番です。

getnames( )
メンバーをその名前のリストとして返します。これは getmembers()で返されるリストと同じ順番です。

list( verbose=True)
コンテンツの表を sys.stdout に印刷します。もし verboseFalse であれば、メンバー名のみ印刷します。もしそれが True であれば、"ls -l"-風の出力が作成されます。

next( )
TarFileが読み込み用にオープンされている時、 アーカイブの次のメンバーを TarInfoオブジェクトとして返します。もしそれ以上利用可能なものがなければ、 None を返します。

extract( member[, path])
メンバーをアーカイブから現在の作業ディレクトリに、そのフル名を使って、 抽出します。そのファイル情報はできるだけ正確に 抽出されます。 memberは、ファイル名でもTarInfo オブジェクトでも構いません。 pathを使って、異なるディレクトリを指定することができます。

extractfile( member)
アーカイブからメンバーをオブジェクトとして抽出します。 memberは、ファイル名あるいは TarInfo オブジェクトです。 もし memberが普通のファイルであれば、ファイル風のオブジェクトを返します。 もし memberがリンクであれば、ファイル風のオブジェクトをリンクのターゲットから 構成します。 もし memberが上のどれでもなければ、None が返されます。
注意: ファイル風のオブジェクトは読み出し専用で以下のメソッドを提供します: read(), readline(), readlines(), seek(), tell().

add( name[, arcname[, recursive=True]])
ファイル nameをアーカイブに追加します。name は、任意のファイルタイプ (ディレクトリ、fifo、シンボリックリンク等)です。 もしarcname が与えられていれば、それはアーカイブ内のファイルの代替名を 指定します。デフォールトではディレクトリは再帰的に追加されます。 これは、recursiveFalseに設定することで避けることができます。

addfile( tarinfo[, fileobj])
TarInfoオブジェクトtarinfoをアーカイブに追加します。 もし fileobj が与えられていれば、tarinfo.size バイトがそれから読まれ、 アーカイブに追加されます。gettarinfo()を使って TarInfo オブジェクトを作成することができます。
注意: Windows プラットフォームでは、fileobjは、ファイルサイズに関する問題を避けるために、 常に、モード 'rb' でオープンされるべきです。

gettarinfo( [name[, arcname [, fileobj]]])
TarInfoオブジェクトをファイル name あるいは (そのファイル記述子に os.fstat()を使って) ファイルオブジェクトfileobjの どちらか用に作成します。 TarInfoの属性のいくつかは、 addfile()を使って追加する前に修正することができます。 arcnameがもし与えられていれば、アーカイブ内のファイルの 代替名を指定します。

close( )
TarFileをクローズします。書き出しモードでは、完了ゼロブロックが 2つ、アーカイブに追加されます。

posix=True
もしTrueなら、POSIX 1003.1-1990 準拠のアーカイブを作成します。GNU 拡張機能は使われません、というのは、それらは POSIX 標準の一部ではないからです。 これはファイル名の長さを最大 256 に、linkname を100文字に制限します。 もしパス名がこの制限を越えたら、ValueErrorが 発生します。 もし Falseであれば、GNU tar 互換アーカイブを作成します。それは POSIX 準拠ではありませんが、無制限長さのパス名を保管することができます。

dereference=False
もし Falseであれば、シンボリックリンクとハードリンクをアーカイブに追加します。 もし Trueであれば、ターゲットファイルの内容をアーカイブに追加します。これは、 リンクをサポートしないシステムには何も効果もありません。

ignore_zeros=False
もし Falseであれば、空のブロックをアーカイブの終わりとして処理します。 もし Trueであれば、空(で無効な)ブロックは飛ばして、できるだけ多くの メンバーを取得しようとします。これは連結した、あるいは損傷したアーカイブでのみ 役に立ちます。

debug=0
0(デバッグメッセージなし)から 3(すべてのデバッグ メッセージあり)までを設定すべきです。そのメッセージは sys.stdout に書かれます。

errorlevel=0
もし 0 なら、extract()を使っている時、すべてのエラーが無視されます。 それでも、デバッギングが有効である時は、それらは、デバッグ出力にエラーメッセージとして 出力されます。 もし1なら、すべてのフェータルエラーが、OSErrorあるいは IOError 例外として発生します。 もし2なら、すべてのフェータルでないエラーが、TarError例外と して、やはり発生します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。