3

在欧洲大陆,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']

任何人都可以帮忙吗?

4

1 回答 1

9

您是否尝试过python中的csv 模块?

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

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

在 Birei 的评论后编辑:我只是从 docs python 页面中举例,你可以输入任何你想要的作为 csv 阅读器的分隔符:
''
','
';'
'一个'

于 2013-10-22T10:24:46.767 回答