2012-02-13 6 views
3

私は現在、以下の技術Pythonの:バイナリファイルに配列を読ん

with open(myfile, "rb") as f: 
    for i in range (0, n): 
     s = struct.unpack('=f', f.read(4)) 
     mylist.append(s[0]) 

でのpythonとFORTRANファイルを読み込むしようとしています。しかし、それは大きな配列のために非常に遅いです。ループ全体の内容を一度に読み取って、各項目の変換/追加を避けるために、それをmylistに渡す方法はありますか?

ありがとうございました。今、あなたは、通常のシーケンスタイプのような配列オブジェクトを使用することができます

a = array.array('f') 
a.fromfile(f, n) 

+0

フォーマット文字列を ''= f''から'' = {} f'.format(n) 'に変更した場合、ファイル全体を1つの' struct.unpack() '呼び出しで読むことができます。 – martineau

答えて

10

これはarrayモジュールが何のためにあるのかです。 tolistを使用する必要がある場合は、リストに変換することもできます。

関連する問題