首页 文章

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

提问于
浏览 1482
-1

我正在使用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 回答

  • 1

    您的 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替换 "\" .

相关问题