2011-08-16 2 views
1

일부 문자열 데이터가있는 사용자 지정 클래스가 있습니다. 이 문자열 데이터를 파일 핸들의 쓰기 객체를 사용하여 파일에 저장할 수 있기를 바랍니다. 나는 __str__()을 구현했습니다. 따라서 str(myobject)을 수행 할 수 있습니다. 파이썬을 만드는 데 상응하는 방법은 무엇입니까? 내 객체를 문자 버퍼 객체로 간주할까요?개체를 "문자 버퍼 개체"로 지정

+0

'fileObject.write (str (myobject))'? 그냥 할 수없는 이유가 있습니까? –

+0

"캐릭터 버퍼 객체"가 무슨 뜻인지 모르겠습니다. 파이썬이 당신의 객체를 파일 객체로 취급하기를 원한다는 것을 의미합니까? http://docs.python.org/library/stdtypes.html#file-objects – dpitch40

+0

이러한 종류의 객체를 작성하는 write()만이 일반적인 사용 사례이며 자세한 것 같습니다. @ dpitch40 - TypeError : open ('filename.ext', 'w')을 할 때 문자 버퍼 객체가 필요합니다. write (myobject) – Matt

답변

0

라이브러리 코드로 객체를 사용하려고하면 파일에 무엇을 쓸 수 있는지 예상하는 경우 file처럼 작동하는 "오리 파일"클래스를 구현해야 할 수 있습니다. 하지만 당신의 stringable 개체를 지원합니다. 불행하게도 file은 적어도 파이썬 2.6에서 서브 클래스 화가 가능한 타입이 아닙니다. 라이브러리 코드가 예상대로 작동하려면 파일 프로토콜 (write, writelines, tell 등)을 충분히 구현해야합니다.

+0

감사합니다. str()은 그다지 나쁘지 않습니다. – Matt

0

하나의 함수,하지만 그들 중 전체 범위가 아니다 - read, seek는 등

왜 당신은 이미 문자열 버퍼 인 StringIO.StringIO 서브 클래스하지?

+0

어쩌면 저의 질문에 저조한 말을했을 수도 있습니다. 표준 파일 핸들러를 사용합니다. – Matt

+0

그러면 실제로 하위 클래스로 만들려는 파일 인'file'입니다. 그것은 이상한 개념이지만, 당신은 정말로 '파일'을 가지고 있습니까? – SingleNegationElimination

관련 문제