如何在Pandas循环中为to_excel()传入动态变化的路径参数
问题根因与修复方案
你遇到的报错是路径构造的语法错误导致的:
r'路径内容'是Python中声明原始字符串的语法规则,不属于路径内容本身。你将r'和'拼接到了路径字符串中,最终生成的路径末尾会带有多余的单引号,pandas提取文件后缀时会识别为xlsx'(可参考报错日志末尾的No engine for filetype: 'xlsx''提示,xlsx后多了1个单引号),自然找不到对应的解析引擎,即便是切换为csv格式也会出现同样的后缀识别错误。
修复后的代码
import pandas as pd import os # 自动创建输出文件夹,避免路径不存在报错 output_folder = "Edited Tables" os.makedirs(output_folder, exist_ok=True) # 工作表名称列表,注意列表元素需为字符串格式 list_of_tables = ["a", "b", "c", "d", "e"] for table_name in list_of_tables: # 读取指定工作表 df = pd.read_excel(r"Large_dataset_X.xlsx", sheet_name=table_name, engine="openpyxl") # 此处插入你的数据格式化编辑代码 # {Bunch of code formatting and editing the file} # 拼接输出路径,无需额外加r和引号 output_path = os.path.join(output_folder, f"{table_name}_Table_New.xlsx") # 保存文件 df.to_excel(output_path, sheet_name=table_name, index=False, engine="openpyxl")
可选优化建议
- 处理大批量工作表前,建议先安装openpyxl依赖:
pip install openpyxl,并在读写Excel时显式指定engine="openpyxl",避免默认引擎缺失导致的报错 - 若不需要保留Excel特有的格式,可改为保存为csv格式,读写速度提升数倍,适合大批量数据处理
- 无需通过索引遍历工作表列表,直接迭代列表元素即可,代码可读性更高
内容的提问来源于stack exchange,提问作者jaimesupah
相关产品推荐
相关产品推荐

