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

Python逐行读取CSV仅保留前4个字段丢弃剩余内容的实现问题

问题分析

你原代码的问题集中在以下几点:

  • 语法错误:Python 中中断循环的关键字是小写break,你写的大写Break会直接抛出语法错误
  • 分隔逻辑错误:你的数据主体分隔符是空白符,多余内容才以逗号开头,直接按逗号拆分完全不符合数据格式,自然得不到预期结果
  • 逻辑漏洞:没有先移除逗号后缀的多余内容,拆分后无法过滤冗余字段

实现方案

核心思路:所有多余内容都以逗号为起始标识,先截取每行第一个逗号之前的内容,再按空白符拆分取前4个字段即可,代码如下:

entries = []
# 用with上下文管理器打开文件,自动处理资源释放
with open('替换为你的CSV文件路径', 'r', encoding='utf-8') as f:
    for line in f:
        # 去除首尾空白字符
        line = line.strip()
        # 跳过空行
        if not line:
            continue
        # 找到第一个逗号的位置,截取逗号前的内容,没有逗号则保留整行
        comma_idx = line.find(',')
        if comma_idx != -1:
            line = line[:comma_idx].strip()
        # 按空白符拆分,仅保留前4个字段
        fields = line.split()[:4]
        entries.append(fields)

print(entries)

输出验证

运行后得到的结果完全符合需求:

[
    ['1', 'DateTime', 'Temp'],
    ['2', '02/11/2021', '0:00', '35'],
    ['3', '04/11/2021', '0:00', '32'],
    ['4', '05/11/2021', '0:00', '34'],
    ['5', '06/11/2021', '0:00', '28'],
    ['6', '07/11/2021', '0:00', '27.5'],
    ['7', '08/11/2021', '0:00', '25.6'],
    ['8', '09/11/2021', '0:00', '23.7'],
    ['9', '10/11/2021', '0:00', '21.8']
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:05