【发布时间】:2021-02-16 09:42:07
【问题描述】:
您好,我在这里找不到示例的解决方案。我找到了https://stackoverflow.com/a/36666420/6089311,但是没有流读。
我想运行两个独立于 python 程序的子进程(在后台运行)。第一个子进程通过管道为第二个进程提供数据,我想通过流的方式对 stdout 行进行一些处理。
下面的例子被屏蔽了,但我不知道为什么:
import asyncio
import os
async def foo():
read, write = os.pipe()
process_1 = await asyncio.create_subprocess_exec('ls', stdout=write)
process_2 = await asyncio.create_subprocess_exec('wc', stdin=read, stdout=asyncio.subprocess.PIPE)
async for l in process_2.stdout:
# streaming process data
print(l)
os.close(write)
os.close(read)
await foo() # jupyter call
# async.run(foo()) # python call
【问题讨论】:
-
也许你应该在链接中使用
close -
您是否收到错误消息?始终将有问题的完整错误消息(从“Traceback”一词开始)(不是评论)作为文本(不是屏幕截图,不是链接到外部门户)。还有其他有用的信息。
标签: python python-3.x subprocess python-asyncio