2
我寫它使用tar文件模塊備份腳本中使用的過濾器。我是一名Python初學者。這裏是我的腳本的一部分 - 所以我的需要在tar.gz.要存檔的路徑列表看到這個post,我想出了以下內容。現在存檔被創建,但擴展名爲.tmp和.data的文件不會被忽略。我正在使用python 3.5的Python:在tar文件
L = [path1, path2, path3, path4, path5]
exclude_files = [".tmp", ".data"]
# print L
def filter_function(tarinfo):
if tarinfo.name in exclude_files:
return None
else:
return tarinfo
with tarfile.open("backup.tar.gz", "w:gz") as tar:
for name in L:
tar.add(name, filter=filter_function)
謝謝。那工作。我有一個問題,如果我必須添加排除列表的路徑,那將如何工作? – akya
那將是一個相對路徑。你可以執行一個'os.path.dirname(tarinfo.name)'並與你想排除的目錄進行比較。我建議你打印你在功能上比較的兩個部分,以便看看它們是否有可能匹配。如果您首先做到了這一點,那麼您會看到您將擴展名與全名進行比較。 –
我寫了這個代替 'L = [path1,path2,path3,path4,path5] exclude_files = [「.tmp」,「.data」,「/ media/Data/Textfiles/Linux」,「/ media /數據/ TEXTFILES /老/ Pushbullet「] 高清exclude_function(文件名): 如果exclude_files或os.path.splitext(文件名)的文件名[1] exclude_files: 返回True 其他: 返回False 與tarfile.open( 「backup.tar.gz」, 「W:GZ」)作爲焦油 爲了實現L名稱: tar.add(姓名,排除= exclude_function)' – akya