2010-08-26 12 views
5

Mi programa funciona bien en Windows, con cpickle, y estoy usando el modo binario, como 'wb' o 'rb'. Cuando ejecuté mi programa en Linux, todavía funciona bien.cPickle.UnpicklingError: clave de carga no válida

Pero cuando traté de eliminar los archivos obtenidos de la plataforma Linux en mi plataforma de Windows, recibí este mensaje con cable que dice: cPickle.UnpicklingError: clave de carga no válida ' '.

¿Alguien puede decirme por qué?

Parece que no pude eliminar ningún archivo de la plataforma Linux.

Por cierto, los dos programas que ejecuto son idénticos.

Gracias a un millón.

Respuesta

4

Al observar el código (http://svn.python.org/view/python/trunk/Modules/cPickle.c?revision=81029&view=markup), parece que fue un error de análisis (la tecla de carga es una clave de formato de pickle). Parece que el archivo ha sido alterado.

¿Cómo se transfirieron los archivos de Linux a Windows? Si era FTP, ¿se transfirió en modo binario?

(Está utilizando HIGHEST_PROTOCOL ¿no?)

+0

¡Muchas gracias! Es el modo de transferencia. ¡El modo binario realmente resolvió el problema! – beryl83

Cuestiones relacionadas