1

これは、この質問から派生したものです。その中で、次の行がpythonスクリプトに表示されます。

c1,c2 = [float(x) for x in line.split()] #convert line into 2 floats and unpack

2 列のデータ ファイルを読み取る場合。

現在、私の実際のデータ ファイルには 31 列あり、列 1 と 2 の代わりに列 28 と 31 を使用する必要があります。

c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31 = [float(x) for x in line.split()]

エラーが発生します:

ValueError: too many values to unpack

ファイル内のすべての列を正しく読み取るにはどうすればよいですか?

4

2 に答える 2

2

別のアプローチ:

cols = [float(x) for x in line.split()]
c28, c31 = cols[27], cols[30]

したがって、全体的なセットアップは次のようになります。

with open('<file name here>') as source_file:
    for line in source_file:
        cols = [float(x) for x in line.split()]
        c28, c31 = cols[27], cols[30]
于 2012-10-23T13:45:43.930 に答える
1
cols = [float(x) for x in line.split()]
for i in len(cols):
    print i, cols[i]

N 個の変数をインスタンス化する必要はありません。ファイルの読み取り中に配列を使用するだけです。

この場合の for ループは、実際にいくつの値があるかを確認するのに役立ちます

于 2012-10-23T13:41:23.117 に答える