2012-01-06 4 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

関連する問題