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