我正在使用reader方法读取csv文件的一列。我的一列包含带逗号的字符串值。但当我使用分隔符作为逗号时,读者会将其读取为两个不同的值。
我的要求是,代码应该只将此列值作为单个字符串读取,读取器方法应该只将分隔符用作逗号。
输入:"11"11","Bob Marley,USA","ABC">
代码:
reader = csv.reader(csv_file, delimiter=',', quotechar="'")
output = []
for row in reader:
output = list(row)
for each in output:
print(each)
输出:
"11"11"
"Bob Marley
USA"
"ABC"
所需输出:"1111"Bob Marley USA"ABC">
您的quotechar="'"
应该是quotechar='"'
,因为输入使用"
作为String值。
编辑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
您可以将"
替换为具有正则表达式的"
。