5

前提

  • 私はディレクトリを持っています/foo/bar
  • ディレクトリを含むtarファイルがありますbaz

問題

bazアーカイブ内の内容を抽出する/foo/bar

アーカイブには次が含まれます。

バズ/
 file1.txt

ソース ディレクトリには以下が含まれます。

ふー/
  バー/
    file2.txt

抽出後、次のようになりたい:

ふー/
  バー/
    file1.txt
    file2.txt

これまでのソリューション

一時ディレクトリに抽出し、その内容をbazターゲットの場所に移動しbazます。ディレクトリは常に同じ名前になるため、これは機能します。

他のアイデアはありますか?

4

1 に答える 1

3

tarfileライブラリのextract()extractall()またはextractfile()メソッドを使用できます。この方法で、アーカイブ内のトップレベル以外のオブジェクトにアクセスできるはずです。

extractall path() の はアーカイブ内のパスではなく、アーカイブを抽出したいパスであるため、そこに baz を配置しても役に立たないことに注意してください。

おそらく最初に呼び出しgetmembers()てから、リストを必要なものに切り詰めてから、上記の抽出メソッドのいずれかを呼び出します。

于 2011-11-06T20:53:29.547 に答える