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

如何用pandas批量处理目录CSV文件并输出新文件及FileNotFoundError排查

错误原因
  • 路径拼接错误:os.listdir(DIR)仅返回目录下的纯文件名,读取文件时没有拼接DIR前缀,程序会默认在脚本当前工作目录查找文件,导致找不到目标文件。
  • 输出路径错误:保存文件时写的'DIR/filename_{}'.format(filename)是将DIR作为普通字符串处理,没有调用你定义的DIR变量,同时命名规则不符合需求,会生成前缀为filename_的错误文件名。
  • 冗余代码:pd.read_csv返回的结果本身就是DataFrame类型,无需再用pd.DataFrame(trim_data)重复转换。
修复后的完整代码
import os
import pandas as pd

DIR = 'Dummy_Folder/'
JV_suffix = "Current-Voltage Data.csv"

for filename in os.listdir(DIR):
    if filename.endswith(JV_suffix):
        # 拼接完整的输入文件路径
        input_path = os.path.join(DIR, filename)
        data = pd.read_csv(input_path, header=None)
        # 增加行数校验,避免文件过短导致删除不存在的行报错
        if len(data) < 6:
            print(f"文件{filename}行数不足6行,跳过处理")
            continue
        # 定义要删除的行
        trim = [0,1,2, len(data)-1, len(data)-2, len(data)-3]
        trim_data = data.drop(trim, axis=0)
        # 拼接输出路径,原文件名后加_processed后缀标识处理完成
        output_filename = f"{os.path.splitext(filename)[0]}_processed.csv"
        output_path = os.path.join(DIR, output_filename)
        trim_data.to_csv(output_path, index=False)
补充说明
  • 代码增加了行数校验逻辑,避免待处理文件行数过少时删除不存在的索引行抛出异常
  • 输出文件命名沿用原文件名主体,添加_processed后缀标识已处理,你可以根据需求自行修改后缀名
  • 使用os.path.join拼接路径可以适配不同操作系统的路径分隔符规则,兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:39:03