2012-05-07 103 views
5

我需要使用python壓縮包含.xml文件和.fgdb文件的文件夾。任何人都可以幫我嗎?我嘗試了一些我的腳本互聯網上找到,但總是有一些技術問題(如創建一個空的zip文件,或創建zip文件無法打開「沒有權限」等。)在Python中的子文件夾的ZIP文件夾

在此先感謝。

回答

6

使其工作的關鍵是os.walk()函數。這是我過去應該組裝的腳本。如果你有任何例外,請告訴我。

import zipfile 
import os 
import sys 

def zipfolder(foldername, target_dir):    
    zipobj = zipfile.ZipFile(foldername + '.zip', 'w', zipfile.ZIP_DEFLATED) 
    rootlen = len(target_dir) + 1 
    for base, dirs, files in os.walk(target_dir): 
     for file in files: 
      fn = os.path.join(base, file) 
      zipobj.write(fn, fn[rootlen:]) 

zipfolder('thenameofthezipfile', 'thedirectorytobezipped') #insert your variables here 
sys.exit() 
+0

確定。首先幫我一件事。在這種情況下,target_dir和foldername是什麼?請給我舉個例子,可以肯定。因爲我試過你的代碼,它運行時沒有例外,但也沒有創建zip? – Z77

+0

嗨Z77,我編輯了代碼,使其更具體到您的問題,請檢查新的腳本。 foldername是要提供給新的.zip文件的文件夾名稱,target_dir是要壓縮的目標文件夾。只需將腳本放入要壓縮的文件夾的包含文件夾中,更改函數調用中的變量即可。 –

+0

TNX爲你的努力,但仍沒有,沒有創建壓縮文件?!:( – Z77

相關問題