gpt4 book ai didi

python - Windows 上的管道镜像

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:49 24 4
gpt4 key购买 nike

在 Windows shell 中运行此命令:

djpeg -pnm -gray text.jpg | gocr -

按预期工作 - 图像由 djpeg 可执行文件解码并传递给 gocr 来解码内容。

我想在 Python 下运行类似于此任务 - 将 PIL 图像通过管道传输到 gocr 而不写入临时文件。例如,我可以指示 PIL 将 PPM 格式的图像(由 gocr 可执行文件接受)写入标准输入:

im.save(sys.stdin, 'PPM')

但是我尝试使用管道和子进程模块的任何事情都没有给我带来快乐。

有人可以建议如何通过 Python 运行此任务 - 将图像从 PIL 传输到可执行文件并从 stdout 获取文本输出吗?

最佳答案

要写入 gocr 子进程的标准输入,您可以使用 subprocess 模块:

from subprocess import Popen, PIPE

p = Popen(["gocr", "-"], stdin=PIPE)
im.save(p.stdin, 'PPM')
p.stdin.close()
p.wait()

如果 im.save() 不适用于管道,则首先将图像转换为字节字符串:

from subprocess import Popen, PIPE
from StringIO import StringIO

buf = StringIO()
im.save(buf, 'PPM')

p = Popen(["gocr", "-"], stdin=PIPE)
p.communicate(input=buf.getvalue())

关于python - Windows 上的管道镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20753807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com