【发布时间】:2020-12-09 16:15:37
【问题描述】:
我有一个 .csv 文件,看起来像这样:
1,2,"a,b",3
4,"c,d",5,6
我正在读取并存储在这样的数组中:
with open(filename, 'r') as f:
data = f.readlines()
data = [line.split(',') for line in data]
这会导致这样的数组:
[['1','2','"a','b"','3']['4','"c','d"','5','6']]
但是,我想将数据数组的一个元素中的项目保留在双引号中,例如“a,b”(这是它们在 Excel 中的打开方式),如下所示:
[[1,2,'a,b',3][4,'c,d',5,6]]
有没有简单的方法在 Python 中实现这一点?
编辑:如果可能,最好不使用 csv 模块?
【问题讨论】:
-
可以使用模块
csv -
或者你也可以实现自己的解析器
-
@dcg 我试图避免使用它来保持清洁和简单,但如果这是唯一的方法......
-
我觉得使用
csv比自己动手要简单 -
使用标准库中的
csv模块确实是这里的最佳选择。它使用起来很简单(请参阅下面使用它的答案),并且您可以确定所有可能出现的问题(例如,引用等)都已正确解决,并且在某些极端情况下您不会遇到错误。跨度>