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

时间:2013-10-22 09:57:16

标签: python csv comma pyparsing

在欧洲大陆,csv文件通过分号分隔,因为数字有,而不是。所以,我正在尝试编写与commaSeparatedList相同的semicolonSeparatedList,但是;而不是:

_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']

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:8)

您是否尝试过python的csv module

在那里,您可以轻松指定分隔符。

import csv
with open('eggs.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')

Birei评论后的编辑:我刚刚从docs python页面中获取示例,您可以输入任何您想要的作为csv阅读器的分隔符:
'' ''
';'
'A'