2012-04-28 6 views
1

파일을 변수로 처리 할 수있는 방법이 있습니까? 예를 들어 PIL 이미지 모듈에서 저장 함수가 호출 될 때 : Image.save("foo.jpg") 내가 a.read()가 호출 될 때, 그것은 무엇을 반환해야하는 하드 디스크에 저장하지만 변수 a에 도입 될 모든 데이터를 싶습니다 파일 내용은 다음과 같습니다.파이썬 변수 및 파일

답변

8

당신은 바이트 스트림에 PIL 이미지를 저장하기 위해 BytesIO 클래스를 사용할 수 있습니다.

>>> from PIL import Image 
>>> im = Image.open('ball.png') 
>>> from io import BytesIO 
>>> buffer = BytesIO() 
>>> im.save(buffer, format='png') 
>>> buffer.getvalue() 
'\x89PNG\r\n\x1a\n\x00\ ... 

그것은 전체 io module page을 통해 독서 아마 가치, 그것은 ch3ka 지적으로 좋은 정보를 많이, StringIO를 포함, 꽤 짧다.

+0

해답을 주셔서 감사합니다. 그러나 한 가지 더 질문합니다. 'im.write'의 목적은 무엇입니까? –

+1

그건 나를 위해 적절한 이미지 클래스 메서드를 잊지 비트, 그냥 제거했습니다 :) –

7

확실히 확인하려면 StringIO 모듈을 살펴보십시오. 문자열과 같은 파일 형식의 인터페이스를 제공합니다.

http://docs.python.org/library/stringio.html

StringIO - File-like objects that read from or write to a string buffer.