python鎬庝箞鎵归噺鍘嬬缉鏂囦欢鐢熸垚瀵嗙爜
瑕佹壒閲忓帇缂╂枃浠跺苟鐢熸垚瀵嗙爜锛屽彲浠ヤ娇鐢≒ython鐨剒ipfile搴撳拰random搴撱€?/p>
涓嬮潰鏄竴涓ず渚嬩唬鐮侊紝鐢ㄤ簬鎵归噺鍘嬬缉鎸囧畾鏂囦欢澶逛腑鐨勬墍鏈夋枃浠讹紝骞剁敓鎴愰殢鏈哄瘑鐮侊細
import zipfile
import random
import string
import os
def generate_password(length):
"""鐢熸垚闅忔満瀵嗙爜"""
characters = string.ascii_letters + string.digits + string.punctuation
return ''.join(random.choice(characters) for _ in range(length))
def compress_files(folder_path, output_path):
"""鎵归噺鍘嬬缉鏂囦欢骞剁敓鎴愬瘑鐮?quot;""
with zipfile.ZipFile(output_path, 'w') as zipf:
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, os.path.relpath(file_path, folder_path))
password = generate_password(10)
with zipfile.ZipFile(output_path, 'a') as zipf:
zipf.setpassword(password.encode())
print(f"鏂囦欢宸插帇缂╀负 {output_path}锛岀敓鎴愮殑瀵嗙爜涓?{password}")
# 绀轰緥鐢ㄦ硶
compress_files('/path/to/folder', '/path/to/output.zip')
杩欐浠g爜棣栧厛瀹氫箟浜嗕竴涓?code>generate_password鍑芥暟锛岀敤浜庣敓鎴愭寚瀹氶暱搴︾殑闅忔満瀵嗙爜銆傜劧鍚庡畾涔変簡涓€涓?code>compress_files鍑芥暟锛岀敤浜庢壒閲忓帇缂╂枃浠跺苟鐢熸垚瀵嗙爜銆傝鍑芥暟鎺ュ彈涓や釜鍙傛暟锛?code>folder_path琛ㄧず瑕佸帇缂╃殑鏂囦欢澶硅矾寰勶紝output_path
琛ㄧず鍘嬬缉鏂囦欢鐨勮緭鍑鸿矾寰勩€?/p>
鍦?code>compress_files鍑芥暟涓紝棣栧厛浣跨敤zipfile.ZipFile
鍒涘缓涓€涓┖鐨勫帇缂╂枃浠躲€傜劧鍚庝娇鐢?code>os.walk閬嶅巻鏂囦欢澶逛腑鐨勬墍鏈夋枃浠讹紝灏嗗畠浠啓鍏ュ埌鍘嬬缉鏂囦欢涓€傛帴涓嬫潵锛屼娇鐢?code>generate_password鍑芥暟鐢熸垚闅忔満瀵嗙爜锛屽苟浣跨敤zipf.setpassword
涓哄帇缂╂枃浠惰缃瘑鐮併€?/p>
鏈€鍚庯紝鎵撳嵃鍑虹敓鎴愮殑鍘嬬缉鏂囦欢璺緞鍜屽瘑鐮併€?/p>
璇锋敞鎰忥紝杩欏彧鏄竴涓ず渚嬩唬鐮侊紝浣犲彲浠ユ牴鎹疄闄呴渶姹傝繘琛屼慨鏀瑰拰閫傞厤銆?/p>
相关问答