循环遍历文件夹处理文件时修改df.to_csv输出文件名的实现问题
问题排查与代码修正
现有代码的遗漏点
- 没有移除原文件的
.out后缀:直接拼接.csv会生成bls_2.out.csv这类错误文件名,不符合输出格式要求 - 没有处理需要删除的文件名片段:没有匹配并移除
_数字这类多余字符,无法实现bls_2.out转为bls.csv的需求 - 隐藏的路径问题:直接用文件名读写没有拼接目录完整路径,当脚本运行的工作目录不是
C:\Projects时会出现文件找不到的报错
修正后代码
import pandas as pd import os import csv directory = r'C:\Projects' for filename in os.listdir(directory): if filename.endswith(".out"): # 拼接完整读入路径 full_input_path = os.path.join(directory, filename) # 拆分文件名和后缀 base_name = os.path.splitext(filename)[0] # 取下划线前的核心文件名,实现bls_2转bls的需求 core_name = base_name.split('_')[0] # 拼接完整输出路径 full_output_path = os.path.join(directory, f"{core_name}.csv") df = pd.read_csv(full_input_path, sep="\s+", header=None, skiprows=15) df.to_csv(full_output_path, sep=",", index=False, quoting=csv.QUOTE_NONE, quotechar="", escapechar=" ", header=["East","North","Elevation","HoleId","aufaf","aucnf","aufacomf", "aucncomf","prvf","ocf","ccf","ssf","Domain_Code"])
内容的提问来源于stack exchange,提问作者Celeste Wilson
相关产品推荐
相关产品推荐

