如何在python中读取CSV文件时跳过逗号?
我正在使用reader方法读取csv文件的一列。我的一列中包含带逗号的字符串值。但当我使用分隔符作为逗号时,读者将其作为两个不同的值来读取 我的要求是,代码应仅将此列值作为单个字符串读取,而读取器方法应仅将分隔符作为逗号使用 输入: “11”11、“鲍勃·马利,美国”、“ABC” 代码:如何在python中读取CSV文件时跳过逗号?,python,list,csv,delimiter,reader,Python,List,Csv,Delimiter,Reader,我正在使用reader方法读取csv文件的一列。我的一列中包含带逗号的字符串值。但当我使用分隔符作为逗号时,读者将其作为两个不同的值来读取 我的要求是,代码应仅将此列值作为单个字符串读取,而读取器方法应仅将分隔符作为逗号使用 输入: “11”11、“鲍勃·马利,美国”、“ABC” 代码: reader = csv.reader(csv_file, delimiter=',', quotechar="'") output = [] for row in reader: output = l
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=”
,因为输入使用“
作为字符串值
编辑1:
如果不转义,则无法在单元格内使用控制字符,因此您的输入需要转义单元格内的每个“
。否则它会坏的
以下代码适用于“11\”11、“美国鲍勃·马利”、“ABC”
,但不适用于“11”11、“美国鲍勃·马利”、“ABC”
:
您可能可以将
“
替换为\”
替换为。确定。但是如果我们得到字符串值中的双引号,那么它就不再有效了。这是csv文件中的一个错误,我必须编写一个代码来处理它。在这种情况下,您需要用反斜杠转义那些引号,并将escapechar='\\'
添加到阅读器的选项中。我更新了我的答案。CSV阅读器将无法按您所希望的方式处理您当前的输入。您必须事先以另一种方式清理输入。
reader = csv.reader(csv_file, delimiter=',', escapechar='\\', quotechar='"')
for row in reader:
for cell in row:
print cell