2012-05-07 61 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

相关问题