以下是一個(gè) Python 腳本主届,它可以遍歷指定根目錄下的所有子目錄薇正,并將每一個(gè)子目錄壓縮為 ZIP 文件。非目錄的文件會(huì)被直接跳過暗甥。
# -*- coding: utf-8 -*-
import os
import zipfile
def zip_directory(directory_path, output_path):
"""壓縮指定目錄為 ZIP 文件"""
with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, _, files in os.walk(directory_path):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, os.path.relpath(file_path, directory_path))
def process_directories(root_dir):
for item in os.listdir(root_dir):
item_path = os.path.join(root_dir, item)
if os.path.isdir(item_path) :
# 壓縮子目錄
zip_output_path = os.path.join(root_dir, f"{item}.zip")
print(f"Compressing {item_path} to {zip_output_path}")
zip_directory(item_path, zip_output_path)
else:
print(f"Skipping {item_path}")
if __name__ == '__main__':
# 替換為你的根目錄路徑
root_directory = '/path/to/your/root_directory'
process_directories(root_directory)
說明:
-
zip_directory(directory_path, output_path)
:這個(gè)函數(shù)將指定的目錄壓縮為 ZIP 文件宝与。
-
directory_path
:要壓縮的目錄路徑焚廊。 -
output_path
:生成的 ZIP 文件的路徑。
-
process_directories(root_dir)
:這個(gè)函數(shù)遍歷指定根目錄下的所有子目錄习劫,并調(diào)用zip_directory
函數(shù)進(jìn)行壓縮节值。
-
root_dir
:根目錄路徑。
os.path.isdir(item_path)
:檢查路徑是否為目錄榜聂。os.path.relpath(file_path, directory_path)
:在 ZIP 文件中保持目錄結(jié)構(gòu)。
使用步驟:
- 將腳本中的 '/path/to/your/root_directory' 替換為你的根目錄路徑嗓蘑。
- 運(yùn)行腳本:
python script_name.py
注意事項(xiàng):
- 確保在運(yùn)行腳本之前備份重要數(shù)據(jù)须肆,以防止意外情況。
- 腳本會(huì)在根目錄中生成以子目錄名稱命名的 ZIP 文件桩皿。