1

我是 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)
4

2 回答 2

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]
于 2013-09-12T10:34:09.453 回答
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.])
于 2013-09-12T19:55:34.173 回答