これは Python のドキュメントからの抜粋です。
exclude が指定されている場合、それは 1 つのファイル名引数を取り、ブール値を返す関数でなければなりません。この値に応じて、それぞれのファイルが除外 (True) または追加 (False) されます。
私はそれが何を意味するのか分からないことを認めなければなりません。
さらに:
バージョン 2.7 以降非推奨: exclude パラメータは非推奨です。代わりに filter パラメータを使用してください。移植性を最大限に高めるには、filter を位置引数としてではなく、キーワード引数として使用して、exclude が最終的に削除されたときにコードが影響を受けないようにする必要があります。
わかりました...そして「フィルター」の定義:
filter が指定されている場合、それは TarInfo オブジェクトの引数を取り、変更された TarInfo オブジェクトを返す関数でなければなりません。代わりに None を返す場合、TarInfo オブジェクトはアーカイブから除外されます。
... 振り出しに戻って :)
私が本当に必要としているのは、除外の配列 (または ":" で区切られた文字列) を tarfile.add に渡す方法です。
PyDocs ment からのそれらのパッセージが何を説明しようとしてもかまいません。
PS:
これは私の頭をよぎりました:
- ソース ディレクトリ コンテンツのリストの配列を作成する
- ポッピングは除外します
- 残っている個々の配列メンバーに対して tar.add を実行する
でも、もっと文化的な方法でやってほしい