11

Python を使用して、.xml ファイルと .fgdb ファイルを含むフォルダーを圧縮する必要があります。誰でも私を助けることができますか?インターネットで見つけたいくつかのスクリプトを試してみましたが、常に技術的な問題があります (空の zip ファイルを作成する、zip ファイルを作成して「権限なし」で開くことができないなど)。

前もって感謝します。

4

3 に答える 3

22

それを機能させるための鍵は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()
于 2012-05-07T09:51:58.657 に答える
0

プロジェクトで一般的な関数を利用したい場合

def zip_compression_tree(root_path, zip_name):
with zipfile.ZipFile(zip_name, 'w') as z:
    for root, dirs, files in os.walk(root):
        for file in files:
            z.write(os.path.join(root, file))
        for directory in dirs:
            z.write(os.path.join(root, directory))
于 2021-03-30T15:10:11.137 に答える