2012-05-07 2 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은 압축 할 대상 폴더입니다. zip으로하려는 폴더의 포함 폴더에 스크립트를 넣기 만하면 함수 호출에서 변수를 변경하면됩니다. –

+0

Tnx 당신을위한 노력,하지만 아직 아무것도, 아니 zip 파일을 만들었습니다! :( – Z77

관련 문제