加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:48:04 所属栏目:Python 来源:网络整理
导读:我有一个可执行的example.exe.此可执行文件的行为如下: 1.Waits for input from user2.Performs some operations,based on input3.goto 1 如何使用子进程或类似模块与可执行文件进行交互? 我希望运行该过程,插入输入,接收输出,然后根据收到的输出插入其他
我有一个可执行的example.exe.此可执行文件的行为如下:

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

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

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

解决方法

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()))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读