[英]Python created tar.gz file contains “_” folder, how to remove?
我通過 Python 創建的 .tar.gz 文件包含我需要刪除的“_”根級文件夾。
這是我正在使用的.tar.gz function:
def make_tarfile(output_filename, source_dir):
with tarfile.open(output_filename, "w:gz") as tar:
tar.add(source_dir, arcname='')
我創建了.tar.gz: make_tarfile('ARCHIVE.tar.gz', 'C:\FolderA')
如您所見,在.tar.gz 中添加了一個“_”文件夾。 關於如何刪除它的任何建議? 有趣的是,當我解壓 .tar.gz 時,“_”文件夾沒有出現。 從這個意義上說,這很好。 但這將是許多用戶使用的 a.tar.gz,所以我希望它不包含這樣的怪癖。
您在 7z 界面中看到的是它添加到每個目錄的..
條目,以便您可以通過單擊它向上導航。 它在 tar 存檔中不存在。
考慮以下:
def make_tarfile(output_filename, source_dir):
with tarfile.open(output_filename, "w:gz") as tar:
for name in os.listdir(source_dir):
tar.add(os.path.join(source_dir, name), arcname=name)
當調用make_tarfile('ARCHIVE.tar.gz', 'FolderA')
其中FolderA
是:
FolderA/
|-- FolderB
| `-- example
`-- example
生成包含以下內容的存檔:
example
FolderB/
FolderB/example
現在我不喜歡這樣,因為我更喜歡將 tar 文件提取到頂級目錄中。 因為它們是使用tar -czf ARCHIVE.tar.gz FolderA/
創建的,並且具有以下條目:
FolderA/
FolderA/example
FolderA/FolderB/
FolderA/FolderB/example
萬一有人遇到這種情況——使用 7Zip CLI 並復制所需文件夾的所有內容(父文件夾將被省略)。 像這樣:
subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-ttar', 'C:\ARCHIVE.tar', 'C:\FolderA\*'])
subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-tgzip', 'C:\ARCHIVE.tar.gz', 'C:\ARCHIVE.tar'])
存檔中也沒有“_”文件夾,它會很干凈:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.