我正在努力将子进程与 python 一起使用。这是我的任务:
- 通过命令行启动一个 api(这应该与在命令行上运行任何参数没有什么不同)
- 验证我的 API 已经出现。最简单的方法是轮询标准。
- 针对 API 运行命令。当我能够运行新命令时会出现命令提示符
- 通过轮询标准输出来验证命令是否完成(API 不支持日志记录)
到目前为止我所做的尝试:
1. 我被困在这里使用 Popen。我明白,如果我使用
subprocess.call("put command here")
这个作品。我想尝试使用类似的东西:
import subprocess
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
我使用的地方,run_command("insert command here")
但这什么也没做。
关于 2. 我认为答案应该类似于这里: Running shell command from Python and capture the output,但由于我无法让 1. 工作,我还没有尝试过。