のバイナリファイルを読む私は、バイナリファイルが存在し、複数の種類があり、私は組織を知って、次の方法numpyの構造化された配列
numpy.fromfile(file, dtype=)
を使用してバイナリファイルを読んでいます。次のようにそのため私は、DTYPE配列を定義しています
dtypearr = [('a','i4',1),('b','S1',8),('c','i4',1),
('d','i4',1),('e','S1',8)]
このDTYPE配列は、バイナリファイルの最初の値が8つの文字などが続い1つの整数であることを言っている...
を私が午前問題バイナリファイルがdtypearrのサイズでないことです。バイナリファイルは、dtypearr で定義された構造をn回()繰り返す。
これまでのところ、バイナリファイルと同じサイズになるまで、新しいフィールド名でdtypearrを繰り返しています。
しかし、私は何とか、私はdtypearrを繰り返さずにこの目標を達成できることを望んでいました。代わりに、各フィールドに配列を格納する必要があります。たとえば、私はstructuredarray ['a']またはstructuredarray ['b']を使用して、単一の値ではなく配列を指定します。
編集が
なお:
numpy.fromfile(file, dtype=dtypearr)
パターンがまったく同じであるとき、私が欲しいものを実現しました。以下の解決策も機能します。
しかし、私が言及したバイナリファイルのパターンは正確に繰り返されていません。たとえば、ヘッダー部分と複数のサブセクションがあります。各サブセクションには独自の繰り返しパターンがあります。 f.seek()は最後のサブセクションでは動作しますが、前のサブセクションでは機能しません。
あなたが求めていることは少し混乱しているようですね。バイナリ形式の場合はいくつかのサンプルデータを用意し、次にメークアップデータを提供してください。また、あなたが試したコードと失敗したコードを教えてください。 – pmaniyan
私はあなたが基本的なファイルの読み込みルーチン、ヘッダー、セクション、繰り返しパターンを自分で操作する必要があると思います。アレイの作成は最後のステップになります。 – hpaulj
はい、私のコードはもともとはどうでしたか、私は各サブセクションに対してnumpy.fromfileを呼び出さなければならないと思います。f.seekとnumpy.fromfileの "count"オプションの組み合わせで、 – snowleopard