如何修改Python代码批量处理指定文件夹文件并按原名保存结果?
批量处理文件夹中所有TXT文件并保存为同名Excel文件
以下是修改后的完整代码,实现批量处理指定文件夹内的所有TXT文件,并将结果以原文件名保存为Excel文件:
import pandas as pd import os # 指定要处理的文件夹路径 target_folder = r'C:\Users\youngrakchoi\Desktop' # 遍历文件夹中所有.txt文件 for filename in os.listdir(target_folder): if filename.endswith('.txt'): # 构建完整的文件路径 file_path = os.path.join(target_folder, filename) # 提取不带后缀的文件名,用于生成输出Excel文件名 base_name = os.path.splitext(filename)[0] try: # 读取TXT文件(保留原读取逻辑) df = pd.read_fwf(file_path, sep='') # -------My code--------# # 此处保留你原有的数据处理代码,最终生成VOLTAGE_fin DataFrame # 示例:VOLTAGE_fin = df[['指定列']].copy() # 替换为你的实际处理逻辑 # 保存结果为同名Excel文件 output_path = os.path.join(target_folder, f'{base_name}.xlsx') VOLTAGE_fin.to_excel(output_path, index=False) print(f'已完成处理:{output_path}') except Exception as e: print(f'处理文件{filename}时出错:{str(e)}')
关键逻辑说明
- 导入
os模块:用于遍历文件夹、拼接文件路径和处理文件名,是批量文件处理的核心工具。 - 指定目标文件夹:将固定路径改为变量
target_folder,后续更换处理目录时只需修改这一行。 - 筛选TXT文件:通过
endswith('.txt')过滤文件类型,避免误处理非TXT文件。 - 提取基础文件名:
os.path.splitext(filename)[0]会去除文件后缀,例如将data.txt转换为data,确保输出Excel文件与原文件同名。 - 异常处理:加入
try-except块,单个文件处理失败时不会中断整个脚本,同时打印错误信息便于排查问题。
可选简化方案:用glob匹配文件
如果觉得os.listdir加判断繁琐,可以用glob模块直接匹配所有TXT文件,代码更简洁:
import pandas as pd from glob import glob import os target_folder = r'C:\Users\youngrakchoi\Desktop' # 直接获取所有TXT文件的完整路径 for file_path in glob(os.path.join(target_folder, '*.txt')): base_name = os.path.splitext(os.path.basename(file_path))[0] try: df = pd.read_fwf(file_path, sep='') # -------My code--------# # 你的数据处理代码 output_path = os.path.join(target_folder, f'{base_name}.xlsx') VOLTAGE_fin.to_excel(output_path, index=False) print(f'已完成处理:{file_path}') except Exception as e: print(f'处理{file_path}失败:{str(e)}')
内容的提问来源于stack exchange,提问作者min chul
相关产品推荐
相关产品推荐

