2011-09-13 32 views
2

基本上我需要一個文件夾內的某一類型的所有文件複製到一個壓縮文件在最高級別的Python - os.walk某些類型的文件到現有的ZipFile

例如(所以不是一個文件夾中)我有一個文件夾,'文件夾',並在該文件夾中是一個.png文件的負載。我想將所有這些文件複製到一個現有的ZipFile中。目前我只能拿到文件夾複製一樣,所以我最終'ZipFile\A Folder\lots of .pngs',而不是'ZipFile\lots of .pngs'

我使用移動的文件和文件夾的代碼是:

for root, dirs, files in os.walk('A Folder'): 
       for f in files: 
        fname = os.path.join(root, f) 
        myzip.write(fname) 

另一種快速的東西,如果我可以問另一個問題,你將如何去從ZipFile中刪除一個文件夾?

希望這已經夠清楚了,

非常感謝!

回答

2

根據Python文檔中,zipfile.write()方法支持作爲目的地名稱(即在存檔名稱)第二個參數,儘量TTO使用它像這樣:

for root, dirs, files in os.walk('A Folder'): 
    for f in files: 
     fname = os.path.join(root, f) 
     new_path = os.path.normpath(fname.replace('A Folder', '')) 
     myzip.write(fname, new_path) 
+0

這是夢幻般的,非常感謝!我沒有意識到你可以將歸檔目的地歸檔,正是我所感謝的。唯一的問題是如果你再次運行它,它不覆蓋文件,它只是增加了它的另一個副本,我會研究它。再次感謝 – Artharos

相關問題