2012-12-13 9 views
0

데이터는속성 오류가 발생하는 이유는 무엇입니까? 방법 <code>self.prepSetFile()</code>에 의해 반환

dataTodump=self.prepSetFile() 
    try: 
     settingFile=os.path.join(self.settingsDir,"setting.txt") 
     output_phil=open(settingFile,'w') 
     pickle.dump(dataTodump,settingFile,0) 
    except: raise 

나는 내가 심지어 분명히 dataTodump의 데이터 유형이

을 DICT 테스트

AttributeError:
'str' object has no attribute 'write'

속성 오류가있는 이유 모르는 타입의 사전이다

+4

* 파이썬 예외를보고 할 때는 항상 * 전체 * 추적을 포함하십시오. –

+3

'except : raise' 왜'try-catch'가 필요한가요? – quantum

답변

5

파일을 pickle.dump에 전달해야합니다. 당신은 파일 이름 만 전달된다 : 파일이 \n 바이트가 아닌 UNIX 플랫폼에서 번역되지 않도록하기 위해 모드로 열립니다 것을

output_phil=open(settingFile,'wb') 
pickle.dump(dataTodump, output_phil, 0) 

참고.

+0

또는 그 이상 :'pickle.dump (dataTodump, output_phil, 0)' – glglgl

+1

@glglgl : 거의; 'wb' 바이너리 모드를 추가했습니다. –

관련 문제