2017-08-30 116 views
0

我的問題是這樣的: 時使用:在Python中,如果提取的tar.gz文件,如何獲取或設置結果文件的名稱

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

如果壓縮被稱爲「samplefolder的」前的文件,在我完成上述步驟之後,如何返回「sampleFolder」名稱,更好地使用其完整路徑,或者如何將結果設置爲其他名稱,如「文件夾」?

這不是一個好問題,但我在我的項目中對此有實際需求。

我必須編輯問題:如果我不知道「samplefolder的」,我能獲得回報它的解壓縮步

+0

使用其他方法獲取有關檔案的信息。 –

+0

https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall只需使用'path'關鍵字 – yinnonsanders

+0

您可以使用'getmembers'方法列出檔案中的文件,但是存檔可以包含多個文件。如果你想把它們放在一個文件夾中,你可以創建一個新文件夾並使用下面的答案。 – 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",這是沒有必要的地方提取。你應該用getnames

tar.getnames() 

需要注意的是tar包可以在有多個文件或文件夾。

+0

你誤會我的問題,我想解壓縮步 – STR

+0

產生的文件夾名後解壓縮的步驟是'extracted_to_path'後得到的結果文件夾名。 – wim

+0

提問者沒有「sampleFolder」,他們正在尋找它。 –