Python CSV模块能否使用多字符分隔符解析文件?
我有一个使用多字符分隔符的“CSV”文件,因此数据看起来像Python CSV模块能否使用多字符分隔符解析文件?,python,csv,Python,Csv,我有一个使用多字符分隔符的“CSV”文件,因此数据看起来像 field1_|#|_field2_|#|_field3_|#|_field4 有没有办法使用Python CSV模块来解析此文件?尝试用singlechar分隔符替换multichar分隔符 像这样的事情: class DelimitedFile: def __init__(self, fname, mode='rb', ind=',', outd=','): self.f = open(fname, mode)
field1_|#|_field2_|#|_field3_|#|_field4
有没有办法使用Python CSV模块来解析此文件?尝试用singlechar分隔符替换multichar分隔符 像这样的事情:
class DelimitedFile:
def __init__(self, fname, mode='rb', ind=',', outd=','):
self.f = open(fname, mode)
self.ind = ind
self.outd = outd
def __iter__(self):
return self
def next(self):
line = self.f.next()
return line.replace(self.ind, self.outd)
像这样使用它:
import csv
delimiter = ','
reader = csv.reader(DelimitedFile(fileName, ind='_|#|_', outd=delimiter))
for row in reader:
print row
Python的csv模块无法处理多个字符的分隔符,因此“Python csv模块能否使用多列分隔符解析文件?”的简短回答是“否”。一项简单的测试证实了这一点:
reader = csv.reader(open('test.csv'), delimiter = '|#|')
导致此错误的原因:
TypeError:“分隔符”必须是1个字符的字符串
(test.csv是一个带有分隔符的两行文件,如代码所示。)
因此,您需要按照@alexblum的建议,将分隔符替换为单字符分隔符,编写自己的解析器,或者找到不同的解析器。谷歌搜索“python csv多字符分隔符”找到了一些点击率。相关:使用pandas
pd.read\u csv(file.csv,sep='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'',engine='Pythong')
。谢谢,Alex,我会给你一个提示shot@zenzic:如果这个答案解决了问题,请接受它。看见