2010-08-26 11 views
5

Mój program działa poprawnie w oknach, z cpickle, i używam trybu binarnego, np. "Wb" lub "rb". Kiedy uruchomiłem swój program na Linuksie, nadal działa dobrze.cPickle.UnpicklingError: nieprawidłowy klucz obciążenia

Ale kiedy próbowałem rozpakować pliki uzyskane z platformy Linux na mojej platformie Windows, otrzymałem komunikat przewodni: cPickle.UnpicklingError: nieprawidłowy klucz obciążenia " ".

Czy ktoś może mi powiedzieć, dlaczego?

Wygląda na to, że nie mogłem rozpruć żadnego pliku z platformy Linux.

BTW, dwa programy, które prowadzę są identyczne.

Dzięki za milion.

Odpowiedz

4

Patrząc na kod (http://svn.python.org/view/python/trunk/Modules/cPickle.c?revision=81029&view=markup), wygląda na to, że był to błąd parsowania (klucz obciążenia jest kluczem formatu pikle). Wygląda na to, że plik został zmieniony.

W jaki sposób pliki zostały przesłane z systemu Linux do systemu Windows? Jeśli był to FTP, czy przeszedłeś w tryb binarny?

(Używasz prawa HIGHEST_PROTOCOL?)

+0

Wielkie dzięki! To jest tryb transferu. Tryb binarny naprawdę rozwiązał problem !! – beryl83