如何在python中读取CSV文件时跳过逗号?

我正在使用reader方法读取一列csv文件 . 我的一个列包含字符串值,其中包含逗号 . 但是当我使用分隔符作为逗号时,读者将它读作两个不同的值 .

我的要求是,代码应该将此列值作为单个字符串读取,而reader方法应该仅使用分隔符作为逗号 .

Input :"11" 11 "," Bob Marley,美国"," ABC“

Code

reader = csv.reader(csv_file, delimiter=',', quotechar="'")
output = []
for row in reader:
    output = list(row)
    for each in output:
        print(each)

Output

"11"11"
"Bob Marley
 USA"
"ABC"

Desired output: "1111" "Bob Marley USA" "ABC"

回答(1)

2 years ago

您的 quotechar="'" 应为 quotechar='"' ,因为输入使用 " 表示字符串值 .

Edit 1:

您不能在单元格内使用控制字符而不转义它们,因此您的输入需要转义单元格内的每个 " . 否则它会破裂 .

以下代码适用于 "11\"11","Bob Marley, USA","ABC" ,但不适用于 "11"11","Bob Marley, USA","ABC"

reader = csv.reader(csv_file, delimiter=',', escapechar='\\', quotechar='"')
for row in reader:
    for cell in row:
        print cell

您可以使用regular expression替换 "\" .