8

如何实现以下功能:

  1. Python执行一个shell命令,等待用户input做某事
  2. 用户键入后input,程序会响应一些output
  3. Python 捕获output
4

2 回答 2

9

你可能想要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)
于 2012-05-20T12:03:48.253 回答
0

对于同步行为,您可以使用subprocess.run()从 开始的函数Python v3.5

正如Subprocess.popen 和 subprocess.run接受的答案有什么区别中所述:

主要区别在于subprocess.run执行命令并等待它完成,而subprocess.Popen你可以在进程完成时继续做你的事情,然后重复调用subprocess.communicate自己来传递和接收数据给你的进程。

于 2022-02-04T10:48:37.093 回答