【发布时间】:2020-02-02 07:58:26
【问题描述】:
我目前有一个设置,我打开一个子进程,我必须同时读取 stdout 和 stderr ,所以在调用子进程后我为 @ 生成了一个新线程987654323@ 并在主线程中处理stderr。
# imports
from subprocess import Popen, PIPE
from threading import Thread
def handle_stdout(stdout):
# ... do something with stdout,
# not relevant to the question
pass
def my_fn():
proc = Popen([...], stdout=PIPE, stderr=PIPE)
Thread(target=lambda: handle_stdout(proc.stdout)).start()
# ... handle stderr
print(proc.stderr.read())
proc.wait()
proc.kill()
my_fn()
有没有一种方法可以使用 asyncio 实现相同的目标?
【问题讨论】:
标签: python python-3.x async-await python-asyncio