1. ホーム
  2. python

[解決済み】Pythonで.datファイルから特定の列を読み取る

2022-02-11 11:34:49

質問

results.datファイルには、次のようなデータがあります。

7522126 0   0   0   0   0   0   -419.795    -186.24 1852.86 0.134695    -0.995462   -2.53153
7825452 0   0   0   0   0   0   -419.795    -186.24 1852.86 0.134695    -0.995462   -2.53153
8073799 0   0   0   0   0   0   -345.551    -140.711    1819.04 -0.0220266  -0.85992    -2.29598

値はそれぞれタブで区切られています。

例えば8列目の値を1行ごとに取り出して、配列に保存したいのです。つまり、出力はこうなるはずだ。

-419.795
-419.795
-345.551

これを実現する最も簡単な方法は何でしょうか?

どのように解決するのですか?

with open('results.dat') as f:
    [line.split()[7] for line in f]  

または関数を定義します。

get_col = lambda col: (line.split('\t')[col-1] for line in open('results.dat'))  

次に、目的の列番号を指定して関数を呼び出します。 get_col(8) で8列目のデータが得られます。これを配列に格納します。

array.array('d',map(float,get_col(8)))