【问题标题】:How do I write an async version of subprocess.check_output?如何编写 subprocess.check_output 的异步版本?
【发布时间】:2021-11-26 03:25:13
【问题描述】:

在新的 asyncio 框架中,我如何编写一个与 subprocess.check_output 等效的嵌入式异步来捕获流程执行的完整输出?

【问题讨论】:

  • 你试过什么?你有什么具体问题?

标签: python-3.x async-await subprocess python-asyncio


【解决方案1】:
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

一个简单的示例解决方案(失败时不会引发错误,而是返回 None)

【讨论】:

    猜你喜欢
    • 2013-08-13
    • 1970-01-01
    • 2011-09-02
    • 2021-12-19
    • 2021-02-06
    • 2021-12-31
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多