如何实现以下功能:
- Python执行一个shell命令,等待用户
input做某事 - 用户键入后
input,程序会响应一些output - Python 捕获
output
你可能想要subprocess.Popen. 要与进程通信,您将使用该communicate方法。
例如
process=subprocess.Popen(['command','--option','foo'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
inputdata="This is the string I will send to the process"
stdoutdata,stderrdata=process.communicate(input=inputdata)
对于同步行为,您可以使用subprocess.run()从 开始的函数Python v3.5。
正如Subprocess.popen 和 subprocess.run接受的答案有什么区别中所述:
主要区别在于
subprocess.run执行命令并等待它完成,而subprocess.Popen你可以在进程完成时继续做你的事情,然后重复调用subprocess.communicate自己来传递和接收数据给你的进程。