可以使用 os 模块和 glob 模块来遍历文件系统中的所有 Excel 文件,并使用字典将文件名与密码配对。然后,对于匹配的文件,可以调用之前提供的去除密码的函数。
以下是一个示例代码:
import os
import glob
import win32com.client as win32
def remove_excel_password(file_path, password):
try:
excel = win32.Dispatch("Excel.Application")
excel.DisplayAlerts = False
workbook = excel.Workbooks.Open(file_path, False, False, None, password)
workbook.SaveAs(file_path, None, "", "")
workbook.Close()
excel.Quit()
print(f"已移除文件 {file_path} 的密码!")
except Exception as e:
print(f"移除文件 {file_path} 的密码时出现错误:", e)
# 递归遍历文件夹及其子目录中的所有 Excel 文件并移除密码
def remove_passwords_in_folder(folder_path, password_dict):
for root, dirs, files in os.walk(folder_path):
for file_name in files:
if file_name.endswith(".xlsx"):
file_path = os.path.join(root, file_name)
if file_name in password_dict:
password = password_dict[file_name]
remove_excel_password(file_path, password)
# 用法示例
folder_path = r"C:\Excel" # 替换为你的文件夹路径
password_dict = {
"file1.xlsx": "password1",
"file2.xlsx": "password2",
"file3.xlsx": "password3"
} # 文件名和密码配对
remove_passwords_in_folder(folder_path, password_dict)
在示例代码中,remove_passwords_in_folder 函数接受文件夹路径和文件名与密码配对的字典作为输入。它使用 glob 模块查找文件夹中所有的 Excel 文件,然后对于匹配的文件,调用 remove_excel_password 函数来移除密码。
请确保已经安装了 pywin32 模块,并将示例代码中的文件夹路径和文件名与密码配对的字典替换为你的实际值。然后运行代码,它将遍历文件夹中的所有 Excel 文件,并根据字典中的密码信息自动去除密码。