我正在尝试读取包含以下数据的CSV文件
"27@21","","2725 abc dr"","","Mumbai","IN",""
使用以下代码
with open(file, "r") as csv_file:
reader = csv.reader(csv_file, delimiter=',')
for row in reader:
colValues = list(row)
print(colValues)
它给出的输出为
['27@21', '', '2725 abc dr",",Mumbai"', 'IN', '']
如果查看上面的粗体输出,它是三列输入的组合。
我希望此输出与给定的输入相同。
注意:我正在创建一个实用程序来处理任何带有意外特殊字符的csv文件,例如在列值中的任何地方加双引号,并创建一个删除此类字符的新文件。为此,我需要解决此问题。
答案 0 :(得分:0)
最终可以通过在如下所示的阅读器方法中再添加一个参数(quotechar)来解决此问题,
reader = csv.reader(csv_file, delimiter=',', quotechar="'")
Input : "27@21","","2725 abc dr"","","Mumbai","IN",""
Output : ['"27@21"', '""', '"2725 abc dr""', '""', '"Mumbai"', '"IN"', '""']
这是预期的输出,其中输入的csv文件中的列数与输出列表相同。