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

批量处理CSV文件时重复输出及文件路径错误问题求助

问题分析与修复

核心问题1:输出文件数据全部重复

你的代码逻辑存在严重错误:外层循环遍历每个输入CSV文件,处理完当前文件的数据后,内层循环把当前文件的同一组数据写入所有1323个日期文件。这意味着每个输入文件处理完都会覆盖所有输出文件的内容,最终所有文件只会保留最后一个输入文件的数据。

核心问题2:FileNotFoundError

你直接将realdates列表插入文件名,列表被字符串化后会变成[20090325,...20150801]这种格式,这显然不是合法的文件名。另外注意路径写法,比如E:Arman缺少斜杠,应写成E:/Arman或E:\\Arman。

修复方案

正确逻辑是每个输入文件对应一个输出文件,从当前输入文件的文件名中提取日期,用该日期作为输出文件名,无需遍历整个realdates列表。

步骤1:从输入文件路径提取日期(替代单独生成realdates)

无需单独用os.listdir生成日期列表,直接从每个path中提取日期更可靠,避免glob和os.listdir返回顺序不一致的问题:

filename = os.path.basename(path)
date_str = filename[:8]

步骤2:修正循环逻辑,单输入文件对应单输出文件

去掉内层的for i in range(1323)循环,处理完当前输入文件后直接写入对应输出文件。

完整修复代码

import glob
import numpy as np
import pandas as pd
import os

# 输入文件路径
filepaths = glob.glob('C:/Users/Freedom/Desktop/Pronimances/*.csv')
# 输出目录,确保目录存在,不存在则创建
output_dir = 'C:/Users/Freedom/Desktop/Prom_Tracking/'
os.makedirs(output_dir, exist_ok=True)

for path in filepaths:
    # 读取数据
    data = np.loadtxt(path, delimiter=',', skiprows=1, dtype='int', usecols=(0,1,2,3,4,5,6), unpack=True)
    times = data[0]
    nums = data[1]
    Left = data[2]
    Right = data[3]
    y = data[4]
    area = data[6]
    
    # 这里是你处理数据生成list2、realpromID、listd、listb的代码
    # code that manipulates data and creates new lists has been omitted

    # 构造数据字典
    data_dict = {
        'Time': list2,
        'Prominence Number': realpromID,
        'Left Edge (Pixels)': Left,
        'Right Edge (Pixels)': listd,
        'Prominence Area': listb
    }
    
    # 从当前输入文件提取日期
    filename = os.path.basename(path)
    date_str = filename[:8]
    # 构造输出文件路径
    output_path = os.path.join(output_dir, f'{date_str}.csv')
    # 写入CSV(index=False避免生成默认索引列)
    df = pd.DataFrame(data_dict)
    df.to_csv(output_path, index=False)

额外注意事项

  • 用os.makedirs(output_dir, exist_ok=True)确保输出目录存在,避免因目录不存在引发的FileNotFoundError。
  • 确保你省略的数据处理代码是针对当前输入文件生成对应列表(list2、realpromID等),而非全局固定列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:02:42