2017-08-30 8 views
0

私の質問は次のようである: 使用時:は、tar.gzファイルを抽出した場合、どのように取得したり、結果ファイルの名前を設定する

import tarfile 
tar = tarfile.open("sample.tar.gz") 
tar.extractall() 
tar.close() 

あれば「sampleFolder」と呼ばれる圧縮前のファイル上記の手順を実行した後、「sampleFolder」の名前を返す方法、完全パスを使用する方法、結果を「Folder」のような別の名前に設定する方法はありますか?

それは良い質問ではありませんが、私は実際に私のプロジェクトでこれを要求しています。

私は質問を編集する必要があります:私は「sampleFolder」を知っていない場合、私は解凍ステップ

+0

他の方法を使用してアーカイブに関する情報を取得します。 –

+0

https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall 'path'キーワードを使用するだけです – yinnonsanders

+0

' getmembers'メソッドを使用してアーカイブ内のファイルを一覧表示できますが、アーカイブには複数のファイルを含めることができます。それらをすべて1つのフォルダに入れたい場合は、新しいフォルダを作成して下の回答を使用することができます。 – yinnonsanders

答えて

1

後にそれへのリターンを得ることができますこれは、デフォルトでは作業ディレクトリに解凍されます。

import os 
os.getcwd() 

したがって、抽出されたデータへのパスである:別の場所に抽出する

from pathlib import Path 
extracted_to_path = Path.cwd()/'sampleFolder' 

with tarfile.open('sample.tar.gz') as tar: 
    tar.extractall(path='/other/folder') 

編集:あなただけのアーカイブに含まれている名前"sampleFolder"をお知りになりたい場合は、それがどこかに抽出する必要はありません。 tarボールが内に複数のファイルやフォルダを持つことができます

tar.getnames() 

注:あなたはgetnamesを使用する必要があります。

+0

あなたは私の質問を誤解しているので、解凍ステップの後に結果フォルダ名を取得したい – STR

+0

圧縮解除ステップの後のフォルダ名は 'extracted_to_path'です。 – wim

+0

質問者は「sampleFolder」を持っていません。見つけようとしています。 –

関連する問題