Python pyparsing使用分号而不是逗号解析csv文件

Python pyparsing使用分号而不是逗号解析csv文件,python,csv,comma,pyparsing,Python,Csv,Comma,Pyparsing,在欧洲大陆,csv文件用分号分隔,因为数字中有,而不是。因此,我试图编写一个分号分隔列表,它与commaSeparatedList相同,但带有;而不是: _semicolonsepitem = Combine(OneOrMore(Word(printables, excludeChars=';') + Optional( Word(" \t") + ~Liter

在欧洲大陆,csv文件用分号分隔,因为数字中有,而不是。因此,我试图编写一个分号分隔列表,它与commaSeparatedList相同,但带有;而不是:

_semicolonsepitem = Combine(OneOrMore(Word(printables, excludeChars=';') +
                             Optional( Word(" \t") +
                                       ~Literal(";") + ~LineEnd() ) ) ).streamline().setName("semicolonItem")
semicolonSeparatedList = delimitedList( Optional( quotedString.copy() | _semicolonsepitem, default="") ).setName("semicolonSeparatedList")
但是:

Name;Ref;Address 
导致

['Name'] 
而不是

['Name', 'Ref', 'Address']
有人能帮忙吗?

你试过python的吗

在这里,您可以轻松地指定分隔符

import csv
with open('eggs.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
在Birei的评论后编辑:我刚刚从docs python页面中选取了一个示例,您可以输入任何您想要的内容作为csv阅读器的分隔符:
''
“,”
';'

“a”

我想是
分隔符中的一个输入错误。是分号。csv模块有一个我无法解决的问题。它不能同时使用“”和“”值作为引号,用户倾向于使用O'Neill或“secon'time”或“tag1”之类的东西,它需要使用所有值。这就是为什么我选择pyparser,因为它可以与所有人一起工作。很高兴您能够自己解决这个问题-我希望pyparser能在您的Python工具包中找到一席之地。