如何从python中的文本文件中读取选项卡空间间隔的特定列

时间:2018-04-22 14:55:58

标签: python

如何使用文本文件中的python读取具有由制表符空格间隔的浮点值列,如下所示:

1.0    11.0   23.0
2.0    22.0   45.0
3.0    33.0   456.0
4.0    44.0   3456.0
5.0    55.0   33212.0

我想阅读特定的专栏,比如第1,2或3栏。 任何人都可以给我一个相应的python代码吗?

3 个答案:

答案 0 :(得分:1)

您需要阅读文件.strip尾随\n,然后在.split('\n')的每一行上拆分。然后,您可以在每行中使用相同的.split方法遍历理解中的每一行以获取浮点数。

因此,我们可以使用:

创建数据结构
x = [r.split() for r in open('file.txt').read().strip().split('\n')]

但是这不会将字符串转换为浮点数,因为我们需要使用嵌套的理解:

x = [[float(c) for c in r.split()] \
     for r in open('file.txt').read().strip().split('\n')]

现在,如果我们想要第三行的第二个元素,我们可以调用:

x[2][1]

这使我们33.0成为一个浮点数。

答案 1 :(得分:1)

使用split分割字符串,使用strip删除空格

with open(filename,'r') as f:
    for line in f.readlines():
        a,b,c = [float(x.strip()) for x in line.split()]

答案 2 :(得分:0)

使用pandas

import pandas as pd
df = pd.read_csv(filename, sep="\t")