从输入流加载图像到Python

2 投票
1 回答
2382 浏览
提问于 2025-04-17 09:41

我正在使用Python图像库进行一些处理,我想通过管道给我的脚本输入数据,而不是像往常那样传递一个文件名。

我发现Image.open可以接受任何类似文件的对象,而不仅仅是字符串作为参数。我试着直接传递sys.stdin,但似乎在seek操作上遇到了一些问题(从逻辑上讲)。

那么,我该如何将这个流包装成一个可以提供所有文件操作的缓冲区呢?(或者有没有其他合适的解决方案,可以直接从stdin读取图像)。

1 个回答

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()

撰写回答