等待用户输入后与python子进程进行交互

我正在开发一个脚本来自动化某些软件的测试,作为脚本的一部分,我需要检查脚本是否正确运行了命令。

I'm currently launching an executeable using subprocess and passing the initial parameters. My code is: subprocess.run("program.exe get -n WiiVNC", shell=True, check=True) As far as I understand, this runs the executeable, and is supposed to return an exception if the exit code is 1.

Now, the program launches, but at some point waits for user input like so: Required user input

我的问题是,如何使用子进程提交用户输入“ y”,或者显示文本“继续下载“ WiiVNC”?(y / n)>”,或者一旦程序等待用户输入,该如何处理? 。

评论
  • hquae
    hquae 回复

    您应将pexpect模块用于所有复杂的子处理。特别是,该模块旨在处理以下复杂情况:将输入传递给当前进程供用户回答和/或允许您的脚本为用户回答输入并继续子过程。

    添加了一些示例代码:

    ### File Temp ### 
    # #!/bin/env python
    # x = input('Type something:')
    # print(x)
    
    import pexpect
    
    x = pexpect.spawn('python temp') #Start subprocess. 
    x.interact()                     #Imbed subprocess in current process.