将正则表达式传递给python的csv模块中的分隔符字段或numpy的genfromtxt / loadtxt?

时间:2012-12-23 15:21:35

标签: python csv numpy

我将数据列入了一些奇怪的消除(即用逗号分隔的值组,通过制表符与其他值分开):

A,345,567   56  67  test

是否有以下任何一种处理多个分隔符的简洁明智的方法:csv modulenumpy.genfromtxtnumpy.loadtxt

我找到了方法such as this,但我希望有更好的解决方案。理想情况下,我想使用genfromtxt和正则表达式作为分隔符。

1 个答案:

答案 0 :(得分:4)

我担心你要求的三个包中的答案是 no 。但是,您可以replace('\t', ',')(或相反)。例如:

from StringIO import StringIO # py3k: from io import StringIO
import csv
with open('./file') as fh:
    io = StringIO(fh.read().replace('\t', ','))

reader = csv.reader(io)

for row in reader:
    print(row)