2009-11-17 2 views
2

나는 파일로 피 (picking)하는 간단한 클래스가 있습니다. OS X에서이 잘 작동하고 Windows에서이 제대로 작동합니다.Windows에서 절인 Mac에서 파일을 unpickle 할 수 없습니다.

그러나 Windows에서 필자는 개체를 벌크/언킥 할 수 있습니다. 윈도우가이 파일을 pickles하고 디스크에 다시 저장하면 OS X에서는 읽을 수 없게됩니다 (Windows에서는 여전히 정상적으로 동작 함).

OS X에서 돌아 오는 오류는 요구 클래스를 가져올 수 없다는 것입니다.

나는 창문에서 아무것도 피클하지 않는 한이 모든 것이 잘 작동하므로 혼란 스럽다. (그럼에도 불구하고 여전히 Windows에서 잘 작동합니다.)

내 말은 내 말은 라인 엔딩이라고 들었는데 다른 생각은 운영 체제마다 다른 인코딩 유형과 관련이있을 수 있습니다. 하지만이 문제를 완전히 진단하고 해결하기 위해 무엇을 시도해야할지 전혀 모르기 때문에 도움을 받으실 수 있습니다!

답변

5

최신 프로토콜 버전의 Pickle로 모든 경우에 이진 모드로 파일을 엽니 다. 그게 문제를 해결해야합니다.

+0

감사합니다. – Lee

3

아스키 피클 오픈 파일을 ASCII 모드 'r'또는 'w'로 사용하는 경우 - 바이너리 모드 'rb' 'wb'에서 열리는 바이너리 피클을 사용하는 경우. 문서화 문자열에서 :

기본값 인 프로토콜은 하위 호환성을 유지하기 위해 0입니다. (프로토콜 0은 텍스트 모드에서 열린 파일에 쓰여지고 성공적으로 다시 읽을 수있는 프로토콜 인 입니다 . 이 0보다 높은 프로토콜을 사용하는 경우 파일이 이진 모드로 열려 있는지 확인하십시오. 절편 및 unpickling .)

관련 문제