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

Java中按逗号分割CSV文件内容遇阻,求错误排查与解决方案

我来帮你解决这个CSV拆分的问题!先确认下你的需求:跳过CSV的首行表头,把剩下的每一行按逗号拆分成数组,空的字段也要保留为空字符串,对吧?

先把你提供的CSV内容贴出来方便参考:

Time,Activ,Switch,A,B,C,D,E
5:58,on,,,,,,
6:00,on 123,,,ab cd,,,
6:02,on - off,1->2,6,ab cd,1,,
6:04,on,,,cd ab,1,,
6:06,off,,,,,,
7:22,on / off,,,,,,
7:30,on / of,3->4,15,,,,
7:34,home on,,,ab cd,,,

方法一:用Python标准库csv模块(推荐)

这是处理CSV文件最稳妥的方式,它会自动处理字段分割、空值,还能兼容带引号的特殊字段(比如如果以后你的CSV里出现"ab,cd"这种含逗号的内容,也不会出错)。

代码示例:

import csv

# 用来存储最终结果的数组
data_array = []

with open('你的文件名.csv', 'r', encoding='utf-8') as csv_file:
    # 创建CSV读取器
    csv_reader = csv.reader(csv_file)
    # 跳过首行表头
    next(csv_reader)
    # 遍历每一行数据
    for row in csv_reader:
        data_array.append(row)

# 打印验证结果
for idx, row in enumerate(data_array):
    print(f"第{idx+1}行数据:{row}")

运行后你会得到想要的格式,比如第一行数据会是:
["5:58", "on", "", "", "", "", "", ""]

方法二:手动拆分(适合简单CSV场景)

如果你的CSV格式非常简单,没有带引号的含逗号字段,也可以直接用字符串的split(',')方法处理:

data_array = []

with open('你的文件名.csv', 'r', encoding='utf-8') as csv_file:
    # 读取所有行
    all_lines = csv_file.readlines()
    # 从第2行开始处理(跳过首行)
    for line in all_lines[1:]:
        # 去掉换行符,按逗号拆分
        row = line.strip().split(',')
        data_array.append(row)

# 验证结果
for idx, row in enumerate(data_array):
    print(f"第{idx+1}行数据:{row}")

这个方法的缺点是遇到带引号的特殊字段会出错,所以如果你的CSV可能有复杂内容,优先用第一种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:17:10