私は得ています
IOError: [Errno 22] Invalid argument
で大きなバイト文字列をディスクに書き込もうとするとf.write()
、f
mode で開かれましたwb
。
Windowsネットワークドライブを使用しているときにオンラインでこのエラーが発生する多くの人を見てきましたが、私はOSXを使用しています(最初に質問したときは10.7でしたが、現在は10.8で、標準のHFS +ローカルファイルシステムを使用しています)。私はPython 3.2.2を使用しています(python.orgバイナリと自作インストールの両方で発生します)。システム Python 2.7.2 ではこの問題は見られません。
この Windows バグの回避策w+b
に基づいてモードも試しましたが、もちろん役に立ちませんでした。
データは、大きな numpy 配列 (ほぼ 4 GB の浮動小数点数) から取得されます。文字列を手動でループしてチャンクに書き出すと、問題なく動作します。しかし、1回のパスですべてを書くことができずnp.save
、np.savez
失敗するためです-彼らはf.write(ary.tostring())
. を使用して既存の HDF5 ファイルに保存しようとすると、同様のエラーが発生しますh5py
。
で開かれたファイルを読み取るときに同じ問題が発生することに注意してくださいfile(filename, 'rb')
: f.read()
this IOError
、f.read(chunk_size)
合理的な作業のためにchunk_size
。
何かご意見は?