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

関連する問題