如何编写 subprocess.check_output 的异步版本?
How do I write an async version of subprocess.check_output?
在新的 asyncio 框架中,如何编写 subprocess.check_output 的嵌入式异步等效项来捕获流程执行的完整输出?
async def check_output(*args, **kwargs):
p = await asyncio.create_subprocess_exec(
*args,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
**kwargs,
)
stdout_data, stderr_data = await p.communicate()
if p.returncode == 0:
return stdout_data
一个简单的示例解决方案(失败时不会引发错误,而是 returns None)
在新的 asyncio 框架中,如何编写 subprocess.check_output 的嵌入式异步等效项来捕获流程执行的完整输出?
async def check_output(*args, **kwargs):
p = await asyncio.create_subprocess_exec(
*args,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
**kwargs,
)
stdout_data, stderr_data = await p.communicate()
if p.returncode == 0:
return stdout_data
一个简单的示例解决方案(失败时不会引发错误,而是 returns None)