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
相关产品推荐
相关产品推荐

