【发布时间】:2020-06-15 13:41:50
【问题描述】:
我做了一个子进程,但是输出很奇怪:
(b'Ping: 3.425 ms\r\nDownload: 1167.08 Mbit/s\r\nUpload: 314.93 Mbit/s\r\n', None)
而我期待:
Ping: 3.425 ms
Download: 1167.08 Mbit/s
Upload: 314.93 Mbit/s
这是我的代码:
process = await asyncio.create_subprocess_exec("speedtest-cli", "--simple", stdout=asyncio.subprocess.PIPE)
output = await process.communicate()
print(output)
函数也必须是异步的。
【问题讨论】:
-
希望你的真实用例不一样,因为这里
asyncio没用。speedtest-cli在不同的进程中运行,所以subprocess.Popen足以让两个进程并行运行。 -
哦,是的。我将它用于 Discord Bot。当我为没有 asyncio 的 Speedtest 键入命令时,机器人不会响应其他命令。这就是它需要异步的原因。
标签: python python-3.x utf-8 subprocess