私は、特定のディレクトリで抽出する必要のあるディレクトリがあるtarアーカイブを持っています。 例えば:抽出/ /このディレクトリ:私は、私は例えば特定のターゲットディレクトリにそれを抽出したいtarアーカイブ内のディレクトリ指定されたディレクトリ内のディレクトリパスを持つすべてのファイルを抽出します。
TarPrefix/X/Y/Z
を持っていますディレクトリTarPrefix/x/y/zに含まれるすべてのファイルとディレクトリを含む必要があります。
subdir_and_files = [ tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]
は「/サブフォルダ」ディレクトリパス内のすべてのメンバーのリストを取得し、その後、私はそれが
tar.extractall(extracted/a,subdir_and_files)
を使用して抽出するが、それは例えば、そのディレクトリ・パスですべてのメンバーを抽出し、この結果、抽出に//x/y/z。 指定されたフォルダにこれらのファイルを抽出するのを手伝ってください。あなたはすでに答えを見つけたかもしれないよう
私は知らないが、この質問は、ソートあなたの反対であるように思わします。http: //stackoverflow.com/questions/2239655/python-tarfile-adding-files-without-directory-hiearchy extractall()ではなくextractall()を使用して、TarInfoオブジェクトを変更してsubdir_and_filesに入っていますか? –
初心者のご質問をおねがいします。私はpythonの初心者ですし、なぜそのような質問を尋ねられたのGoogle上の任意の答えが見つかりませんでした。他人を助けるために私はこの質問に答えたい。 tarinfo.name属性の値を正しい値に変更するだけで済みます。すなわち私の与えられた例では 'tarinfo.name = tarinfo.name [len(Tarprefix/x/y/z):]'となり、その後同じコードを使用します。 – gaurav
私は自分の質問に答えようとしましたが、私は8時間まで許可されていないので、それまで待っていました。 – gaurav