You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python批量打开同文件夹下带相同密码的加密Excel文件?

批量解密并读取同文件夹下所有带密码的.xls文件

下面是基于你现有单文件逻辑扩展的批量处理代码:

import msoffcrypto
import io
import pandas as pd
import glob

# 配置参数
PASSWORD = 'your_password_here'  # 替换为你的统一密码
TARGET_FOLDER = './'  # 目标文件夹,当前目录用./,也可替换为绝对路径

# 获取文件夹下所有.xls文件
xls_files = glob.glob(f"{TARGET_FOLDER}*.xls")

# 存储所有文件的DataFrame(可选,按需调整)
all_dataframes = []

for file_path in xls_files:
    temp = io.BytesIO()
    try:
        with open(file_path, 'rb') as f:
            excel = msoffcrypto.OfficeFile(f)
            excel.load_key(PASSWORD)
            excel.decrypt(temp)
        
        # 读取解密后的文件
        df = pd.read_excel(temp)
        print(f"成功读取文件: {file_path}")
        print(df.head())  # 打印前几行预览
        
        # 将DataFrame加入列表,后续可合并或单独处理
        all_dataframes.append(df)
        
    except Exception as e:
        print(f"处理文件 {file_path} 时出错: {str(e)}")
    finally:
        del temp  # 释放内存

# 后续可对all_dataframes进行操作,比如合并所有数据
# combined_df = pd.concat(all_dataframes, ignore_index=True)
# print(combined_df)

关键说明:

  • 文件匹配:用glob.glob(f"{TARGET_FOLDER}*.xls")获取目标文件夹下所有.xls文件,若需匹配子文件夹,可改用glob.glob(f"{TARGET_FOLDER}**/*.xls", recursive=True)
  • 循环处理:遍历每个文件路径,重复解密和读取逻辑,每次循环新建BytesIO对象避免数据污染
  • 异常处理:加入try-except捕获错误,单个文件处理失败不会中断整个程序
  • 数据存储:将每个文件的DataFrame存入列表,方便后续合并、分析或导出

内容的提问来源于stack exchange,提问作者Freymi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:42:10