Python批量处理多份xlsx文件:添加列并保存至新文件夹求助
为多个Excel文件添加新列并保存到指定文件夹的Python解决方案
我是Python新手,想实现这样一个功能:给目录下的多份.xlsx文件统一添加一列,然后以原文件名保存到指定的新文件夹中。目前我已经写了部分代码,但还缺少遍历打开所有文件以及将处理后的文件保存到目标路径的相关逻辑,恳请大家帮忙完善。
我的现有代码片段:
from os import listdir, path import pandas as pd import xlrd SourcePath = 'C:\' #Source Path DestPath = 'C:\' #Destination Path # Listing up all .xlsx files from Source def find_xlsx_filenames...
完整解决方案代码
这里我帮你补全并优化了代码,解决了路径处理、文件遍历和保存的问题,同时去掉了不需要的xlrd模块(pandas本身就支持读取xlsx文件):
from os import listdir, path import pandas as pd # 注意使用原始字符串r''避免转义字符问题,替换成你的实际路径 SourcePath = r'C:\Your_Source_Folder' DestPath = r'C:\Your_Destination_Folder' # 确保目标文件夹存在,如果不存在就创建 if not path.exists(DestPath): import os os.makedirs(DestPath) # 遍历源文件夹下的所有xlsx文件 for filename in listdir(SourcePath): # 只处理.xlsx结尾的文件 if filename.endswith('.xlsx'): # 拼接完整的源文件路径 source_file_path = path.join(SourcePath, filename) try: # 读取Excel文件 df = pd.read_excel(source_file_path) # --------------------------- # 这里添加你的新列逻辑,示例:添加一列名为"新列",值为"默认值" df['新列'] = '默认值' # 你可以根据需求修改这部分,比如从文件名提取信息赋值等 # --------------------------- # 拼接目标文件路径 dest_file_path = path.join(DestPath, filename) # 保存处理后的文件,index=False避免保存索引列 df.to_excel(dest_file_path, index=False) print(f"成功处理并保存文件:{filename}") except Exception as e: print(f"处理文件{filename}时出错:{str(e)}")
关键细节说明
- 路径处理:使用原始字符串
r''定义路径,避免Windows路径中的反斜杠被当作转义字符;用path.join()拼接路径,保证跨系统兼容性。 - 目标文件夹检查:先判断目标文件夹是否存在,不存在则自动创建,避免保存时出错。
- 文件筛选:通过
filename.endswith('.xlsx')只处理Excel文件,跳过其他类型文件。 - 异常处理:添加
try-except块,避免单个文件处理失败导致整个程序崩溃,同时打印错误信息方便排查。 - 新列逻辑:你可以根据实际需求修改添加新列的代码,比如根据文件名、文件内容生成列值,而不是示例中的固定值。
内容的提问来源于stack exchange,提问作者Henrik
相关产品推荐
相关产品推荐

