我有一个文本文件,其中包含存储在三列中的一些数据。第一列通过逗号(,)和制表符(\ 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)
但在这种情况下,我不确定如何做到这一点。
提前感谢您的帮助!
答案 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)