2012-01-06 6 views
2

일부 처리를 위해 Python Imaging Library를 사용하고 있으며 파일 이름을 인수로 전달하는 대신 파이프를 통해 데이터를 제공합니다.Python의 입력 스트림에서 이미지로드

나는 Image.open이 매개 변수로 문자열 외에 어떤 파일과 유사한 객체를 받아 들일 수 있음을 보았습니다. sys.stdin을 직접 전달하려고했지만 seek (논리적으로) 문제가있는 것으로 보입니다.

그래서 모든 파일 작업을 제공하는 버퍼로 스트림을 래핑 할 수 있습니까? (또는 stdin에서 직접 이미지를 읽을 수있는 다른 적합한 솔루션).

답변

3

StringIO을 사용하십시오.

import StringIO 
import sys 

filelike = StringIO.StringIO(sys.stdin.read()) 

# Now use `filelike` as a regular open file, e.g.: 
filelike.seek(2) 
print filelike.read() 
+1

나는 이미 해결책을 찾았으며 이것에 대해서도 거의 똑같은 답변을했지만 어쨌든 고맙다. :-) – fortran

관련 문제