[英]How to save tar file in flat tar.gz using Python
我有一個具有以下結構的tar文件:
example.tar
--file1
--file2
並且我想將文件另存為tar.gz,因此它將如下所示:
example.tar.gz
--file1
--file2
我試圖在tarfile
模塊中使用TarFile.add()
,但是我只設法用另一個層次結構創建了tar.gz文件。
我設法只找到兩個解決方案,這似乎不是最佳選擇:
gzip -c example.tar > example.tar.gz
調用以下Unix命令 有沒有在Python中做的連擊方式?
tar.gz
文件只是經過gzip
tar
文件。 如您所知,您編寫了以下Unix命令:
gzip -c example.tar > example.tar.gz
如果要在Python中執行相同的操作,只需使用gzip
庫:
with open('example.tar', 'rb') as inf, gzip.open('example.tar.gz', 'wb') as outf:
shutil.copyfileobj(inf, outf)
實際上,這直接等同於docs中的“用法示例”之一 。
這是最優的嗎?
tar
是一種簡陋的格式...),但不是零。 copyfileobj
為您解決了這一問題。 因此,它與gzip
工具幾乎完全相同。 但是我們不是在創建子進程,也不在依賴可能不存在的工具(例如,在Windows或iOS上,或者在某些非常奇怪的情況下,您創建的chroot具有python但沒有gzip )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.