Skip to main content
 首页 » 编程设计

python csv阅读器不处理引号

2025年05月04日13zengkefu

我有一个文件,我希望使用 CSV 阅读器解析它,它有 12 行,但有些列包含引号,使事情变得更复杂的还有逗号、单引号和换行符,问题是 csv 阅读器不正确处理引号,引号中的引号被视为一个单独的实体,这里是我正在处理的一小部分示例。

ptr = open("myfile") 
text = ptr.read() 
ptr.close()  
 
for l in  csv.reader(text, quotechar='"', delimiter=',',quoting=csv.QUOTE_ALL, skipinitialspace=True): 
    print l 

文件包含:

"0","11/21/2013","NEWYORK","USA 
 Atlantic ","the person replied \"this quote\" to which i was shocked, 
this came as an utter surprise" 
 
"1","10/18/2013","London","UK","please note the message \"next quote\"  
is invalid" 
 
"2","08/11/2014","Paris","France", 
"the region is in a very important geo strategic importance" 

请您参考如下方法:

您必须在阅读器中设置 escapechar:

csv.reader(..., escapechar='\\') 

默认情况下是None(不知道为什么)。

第二件事是你错误地初始化了阅读器。您不会将字符串传递给阅读器,而是流:

with open("myfile") as fo: 
    reader = csv.reader( 
        fo, 
        quotechar='"', 
        delimiter=',', 
        quoting=csv.QUOTE_ALL, 
        skipinitialspace=True, 
        escapechar='\\' 
    ) 
 
    for row in reader: 
        print row