IOError: [Errno 22] Argumento no válido al leer / escribir bytestring grande

Me estoy poniendo

IOError: [Errno 22] Invalid argument

cuando trato de escribir un bytestring grande en el disco conf.write(), dóndef se abrió con el modowb.

He visto a muchas personas en línea que reciben este error cuando utilizo una unidad de red de Windows, pero estoy en OSX (10.7 cuando originalmente hice la pregunta, pero 10.8 ahora, con un sistema de archivos local HFS + estándar). Estoy usando Python 3.2.2 (ocurre tanto en un binario de python.org como en una instalación de homebrew). No veo este problema con el sistema Python 2.7.2.

También probé el modow+b Residencia enesta solución de error de Windows, pero por supuesto eso no ayudó.

Los datos provienen de una gran matriz numpy (casi 4 GB de flotadores). Funciona bien si hago un bucle manual sobre la cadena y la escribo en trozos. Pero porque no puedo escribir todo en una sola pasada,np.save ynp.savez fallan - ya que solo usanf.write(ary.tostring()). Recibo un error similar cuando trato de guardarlo en un archivo HDF5 existente conh5py.

Tenga en cuenta que me da el mismo problema al leer un archivo abierto confile(filename, 'rb'): f.read() da estoIOError, mientrasf.read(chunk_size) por razonablechunk_size trabajos.

¿Alguna idea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta