2011-08-11 2 views
5

,형식 오류 : 버퍼 인터페이스 난 내 원래의 코드에서 게시

crystal = open('vmises.dat','r') 
crystalincrement = pickle.load(crystal) 
crystaldir = pickle.load(crystal) 
crystalface = pickle.load(crystal) 
crystal.close() 

오류이며,

crystalincrement = pickle.load(crystal) 

형식 오류 지원하지 않습니다 'STR': 'STR'버퍼 인터페이스를 지원하지 않습니다

pickle 모듈 WH, 절인 객체로드 파이썬 V 3.2

답변

5

원래이 게시물을 게시 한 후 질문이 수정되어 승인되었습니다. 업데이트 된 질문에 대한 대답은 바이너리 모드로 파일을 열 수 있습니다 : 원래, 사전 편집 질문에

crystal = open('vmises.dat', 'rb') 

답변 :

음, data는 문자열입니다. 작업해야하는 개체는 a입니다.

a = open('data.txt','r') 
b = pickle.load(a) 
c = pickle.load(a) 
d = pickle.load(a) 
a.close() 

pickle 정보의 경우, Python Wiki 또는 Python for Kids 참조하십시오.

+9

Python for Kids? 아야. –

+4

다른 사람이 문서에 문제가있는 경우 동일한 언어를 사용하여 다른 사람이 자료를 설명하는 데 도움이되지 않습니다. 당신은 그것을 다르게 묘사 할 어딘가를 지적 할 필요가 있습니다. – agf

+2

나는 우리가 그 시점에서 정직해야하고 우리가 영광스러운 검색 엔진 서비스임을 인정해야한다고 생각한다. –

0

를 사용 ich는 파이썬 객체의 직렬화 된 버전입니다. 이 코드는 직렬화 된 데이터 세트를 프로그램에로드하려고합니다. 현재이 모듈에 대한 자세한 읽을 수 있습니다 : http://docs.python.org/library/pickle.html

나도 몰라 변수 data를 정의했지만, 당신은 아마 피클에 걸리는 파일로 포인터를 수있는 변수 a에서로드 할 또는 해당 변수의 이름을 data으로 바꿉니다.

data = open('data.txt','r') 
b = pickle.load(data) 
c = pickle.load(data) 
d = pickle.load(data) 
data.close() 
+0

멋진 빠른 답장! 미안 한 오타 오류, 내가 편집했습니다. – coolcing

+0

이제 존재하지 않는 객체에'.close()'를 호출하려고합니다. 어떤 라인이 파이썬 버전에서 스택 추적 기능을 가지고 있는지 구체적으로 오류를 던집니까? 이것은 도움이되는 모든 정보입니다. –

15

실제 답변은 Windows에서 이진 모드로 파일을 열어야합니다. open ('data.txt', 'rb')