Python を使用して、.xml ファイルと .fgdb ファイルを含むフォルダーを圧縮する必要があります。誰でも私を助けることができますか?インターネットで見つけたいくつかのスクリプトを試してみましたが、常に技術的な問題があります (空の zip ファイルを作成する、zip ファイルを作成して「権限なし」で開くことができないなど)。
前もって感謝します。
それを機能させるための鍵は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()
プロジェクトで一般的な関数を利用したい場合
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))