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

使用Python将文本文件指定数据转换为CSV格式报错问题咨询

报错原因

你当前的代码只过滤了带RAW的行,原始文件中残留的Run行、版本标识行、空行都没有逗号分隔结构,pandas读取时会默认按第一行的字段数(只有1个字段)校验后续行,后续AD数据行有9个字段,就会触发字段数不匹配的报错。

解决方案

不要直接覆盖原始文件,先逐行读取拆分出批次元数据(Run行)和有效AD数据行,先把Run行写入CSV,再追加写入结构化的表格数据即可,同时跳过所有无效行避免解析错误。

可直接运行的代码

import pandas as pd

# 读取原始文件,不修改原文件避免数据丢失
with open("sample data as comma.txt", "r", encoding="utf-8") as f:
    all_lines = [line.strip() for line in f.readlines()]

run_batch_info = ""
valid_ad_rows = []

for line in all_lines:
    # 跳过空行、版本行、RAW数据行
    if not line or line.startswith("\\\\") or "RAW Values" in line:
        continue
    # 提取Run批次信息
    if line.startswith("Run"):
        run_batch_info = line
        continue
    # 收集AD有效数据,去掉末尾多余逗号
    if line.endswith(","):
        line = line[:-1]
    valid_ad_rows.append(line.split(","))

# 生成结构化DataFrame
col_names = ['标识列', 'TH+', 'Vacm', 'Vout', 'Bat mon', 'TH-', 'Vbat2', 'Vamb', '冗余列']
df = pd.DataFrame(valid_ad_rows, columns=col_names)

# 按要求写入CSV
with open("Sample raw data CSV.csv", "w", encoding="utf-8", newline="") as f:
    # 先写入单独的Run批次行,加空行和后续表格分隔
    f.write(f"{run_batch_info}\n\n")
    # 写入表格数据,关闭自动生成的索引列
    df.to_csv(f, index=False)

多批次场景扩展

如果你的文件包含多个Run批次,只需要在每次检测到Run行时,先把上一个批次的DataFrame写入文件,再写入新的Run行,重置有效数据列表即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:03