要批量壓縮文件并生成密碼,可以使用Python的zipfile庫和random庫。
下面是一個示例代碼,用于批量壓縮指定文件夾中的所有文件,并生成隨機密碼:
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):
"""批量壓縮文件并生成密碼"""
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')
這段代碼首先定義了一個generate_password
函數,用于生成指定長度的隨機密碼。然后定義了一個compress_files
函數,用于批量壓縮文件并生成密碼。該函數接受兩個參數,folder_path
表示要壓縮的文件夾路徑,output_path
表示壓縮文件的輸出路徑。
在compress_files
函數中,首先使用zipfile.ZipFile
創建一個空的壓縮文件。然后使用os.walk
遍歷文件夾中的所有文件,將它們寫入到壓縮文件中。接下來,使用generate_password
函數生成隨機密碼,并使用zipf.setpassword
為壓縮文件設置密碼。
最后,打印出生成的壓縮文件路徑和密碼。
請注意,這只是一個示例代碼,你可以根據實際需求進行修改和適配。