1

バイナリ形式の数値の巨大なファイルがあり、その特定の部分のみを配列に解析する必要があります。numpy.fromfileとを調べましopenたが、ファイル内の場所 A から場所 B に読み取るオプションがありません。これはできますか?

4

2 に答える 2

2

「巨大なファイル」を扱っている場合、実際にデータが必要になるまですべてを単純に読み取り無視することはしません。

代わりに、Python のファイル オブジェクトには.seek()、データの解析を効率的に開始する必要がある場所にジャンプするために使用できるメソッドがあります。

with open('huge_file.dat', 'rb') as f:
    f.seek(1024 * 1024 * 1024)  # skip 1GB
    ...

参照: http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects

于 2013-10-05T22:38:19.417 に答える
1

関心のあるデータの正確な場所がわかっている場合は、ドキュメントseek(<n bytes>)に記載されているように、ファイル オブジェクトに対してメソッドを使用できます。読み取りを開始する前に、(指定されたオフセットで) 1 回呼び出すだけです。

于 2013-10-05T22:40:44.087 に答える