阅读特定的行&文本文件中的数据列

时间:2013-09-12 10:22:46

标签: python

我是Python的新手,我需要从文本文件(.txt)中提取数据。我有一个文本文件在下面 我需要从文本下面的第三列获取数据。我需要将文本放入python列表

Version 3.6    CE-QUAL-W2
Lagoa das Furnas - 1 Ramo
Default hydraulic coefficients
Default light absorption/extinction coeffients
      JDAY          DLT         ELWS         T2
       4.0          5.0          6.0        7.0
       3.0          4.0          5.0        6.0
       3.0          5.0          7.0        6.0

我试过这个但是它不起作用,我得到了所有的行

a=np.genfromtxt('file.txt', skip_header=5)

2 个答案:

答案 0 :(得分:1)

#updated
L = []
for index, line in enumerate(open('data.txt')):
    if index <= 4: #skip first 5 lines
        continue
    else:
         L.append(line.split()[2]) #split on whitespace and append value from third columns to list.
print(L)
#[6.0, 5.0, 7.0]

答案 1 :(得分:0)

如果您的文件看起来与显示的文件类似,那么您可以跳过标题行,只抓住一列np.genfromtxt,如下所示:

np.genfromtxt('filename.txt', skip_header=5, usecols=2)

请注意,我写了usecols = 2,它获得了第三列(col 0是第一列)。您可以使用列表获取多个列:usecols=[0,2],它将获取第一个和第三个列。

In [105]: from StringIO import StringIO

In [106]: s = StringIO("""Version 3.6    CE-QUAL-W2
   .....: Lagoa das Furnas - 1 Ramo
   .....: Default hydraulic coefficients
   .....: Default light absorption/extinction coeffients
   .....:       JDAY          DLT         ELWS         T2
   .....:        4.0          5.0          6.0        7.0
   .....:        3.0          4.0          5.0        6.0
   .....:        3.0          5.0          7.0        6.0""")

In [107]: np.genfromtxt(s, skip_header=5, usecols=2)
Out[107]: array([ 6.,  5.,  7.])