CSV阅读器以Python中的单个字符串返回三列值

时间:2018-12-07 12:23:01

标签: python list file csv reader

我正在尝试读取包含以下数据的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文件,例如在列值中的任何地方加双引号,并创建一个删除此类字符的新文件。为此,我需要解决此问题。

1 个答案:

答案 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文件中的列数与输出列表相同。