与另一个进程的标准输入/输出交互



我有一个可执行example.exe。此可执行文件的行为如下所示:

1.Waits for input from user
2.Performs some operations, based on input
3.goto 1

如何使用subprocess或类似模块与可执行文件交互?

我希望运行该过程,插入输入,接收输出,然后根据收到的输出插入其他输入。

from subprocess import Popen, PIPE
process = Popen([r'path/to/process', 'arg1', 'arg2', 'arg3'], stdin=PIPE, stdout=PIPE)
to_program = "something to send to the program's stdin"
while process.poll() == None:  # While not terminated
    process.stdin.write(to_program)
    from_program = process.stdout.readline()  # Modify as needed to read custom amount of output
    if from_program == "something":  # send something new based on stdout
       to_program = "new thing to send to program"
    else:
       to_program = "other new thing to send to program"
print("Process exited with code {}".format(process.poll()))

最新更新