2

私のコードは現在、次のようなファイルにデータを書き込みます。

1   1.64    -0.76
2   2.365   0.39
3   6.48    0.88
4   10.45   -0.75
5   12.12   -0.33
6   15.39   0.85
7   19.32   -0.73
8   24.24   0.92
9   26.73   0.35
10  28.18   -0.75
11  33.14   0.85
12  37.02   -0.74
13  37.19   -0.35
14  41.9    0.9
15  45.81   -0.85
16  50.48   0.34
17  50.71   0.84
18  54.61   -0.71
19  59.53   0.88

今、私はそれを操作のために参照したいと思います。たとえば、列3のみを印刷します。私は試しました:

f = open('./gilly.txt', 'r')
print f[2]

しかし、うまくいきませんでした...提案はありますか?

4

2 に答える 2

2

ファイルは 1 行ずつしか読み取れないため、すべてを読み取る必要があります。必要な列が 1 つだけの場合は、次のことができます。

with open('gilly.txt') as myfile:
    third = [float(line.split()[2]) for line in myfile]

( への変換に注意してくださいfloat)。

または、ファイル全体をリストのリストに読み込むことができます。

with open('gilly.txt') as myfile:
    lists = [line.split() for line in myfile]

リストをまったく作成する必要がない場合もあります。

with open('gilly.txt') as myfile:
    tuples = (map(float, line.split()) for line in myfile)

これで始められるはずです。

于 2013-01-08T21:39:44.947 に答える
0

ファイル全体をデータ構造に読み込むには:

data = [x.strip ().split () for x in open ('gilly.txt') ]

またはフロートを取得するには

data = [ [float (y) for y in x.strip ().split () ] for x in open ('gilly.txt') ]
于 2013-01-08T21:41:57.333 に答える