IOError: [Errno 22] Недопустимый аргумент при чтении / записи большой строки байтов

Я получаю

IOError: [Errno 22] Invalid argument

когда я пытаюсь записать большую строку на диск сf.write(), гдеf был открыт с режимомwb.

Я видел, как многие люди в Интернете получали эту ошибку при использовании сетевого диска Windows, но я использую OSX (10.7, когда я первоначально задавал вопрос, но сейчас 10.8, со стандартной файловой системой HFS +). Я использую Python 3.2.2 (происходит как в бинарном файле python.org, так и в доморощенной установке). Я не вижу этой проблемы с системой Python 2.7.2.

Я тоже пробовал режимw+b основанный наэтот обход ошибки Windows, но, конечно, это не помогло.

Данные поступают из большого массива (почти 4 ГБ с плавающей запятой). Это работает нормально, если я вручную зацикливаю строку и записываю ее кусками. Но поскольку я не могу написать все это за один проход,np.save а такжеnp.savez потерпеть неудачу - так как они просто используютf.write(ary.tostring()), Я получаю похожую ошибку, когда пытаюсь сохранить ее в существующий файл HDF5 сh5py.

Обратите внимание, что я получаю ту же проблему при чтении файла, открытого сfile(filename, 'rb'): f.read() дает этоIOError, в то время какf.read(chunk_size) для разумногоchunk_size работает.

Какие-нибудь мысли?