在python中使用不同的分隔符拆分一行

时间:2015-07-16 15:03:43

标签: python split

我有一个文本文件,其中包含存储在三列中的一些数据。第一列通过逗号(,)和制表符(\ t)与第二列分开,第二列与第二列和第三列之间的分隔相同。但是,最后一列以逗号和换行符命令终止(\ n)。这是一个例子:

0.782470450031, 0.0,    0.0,
0.775811285325, 0.025,  0.0,
0.768594334758, 0.05,   0.0,
0.761101295788, 0.075,  0.0,

我想读取这个文件并将其转换为数组。如果列只用逗号分隔,我会这样做:

f=open(filename,'r')
data=[map(float,line.split(',')) for line in f]
data=np.array(data)

但在这种情况下,我不确定如何做到这一点。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用正则表达式:

re.split(r',\t', line)

如果这是CSV文件,则不需要正则表达式,有很多工具可以帮助您。

答案 1 :(得分:0)

我确实使用了re模块。

data=[map(float,re.split(r',\t*', line)) for line in f]
data=np.array(data)