xinggevip 发表于 2022-12-29 14:52

如何用Python对一个交互式的命令行程序进行交互?

想要实现自动化处理CUI应用程序,需要模拟用户在CMD操作应用程序,每次向CMD输入命令,接收CMD返回结果,并根据返回结果继续输入命令;
求大佬给个代码示例{:1_889:}

minicorner 发表于 2022-12-29 16:16

可以用subprocess模块试试

1yttoni 发表于 2022-12-29 16:41

嗯?不就是一个无限循环的input()么?

wyjtpp 发表于 2022-12-29 17:05

CMD的GUI自动化没搞过,但是我搞过基于遥感影像方面的GUI自动化

MXLBS 发表于 2022-12-29 18:31

os库里面有个popen方法可以实现与命令行交互,可以试试看?

hrpzcf 发表于 2022-12-29 18:41

用 pexpect 模块,他就是干这个的,可以帮助实现命令行程序的输入输出自动化,详情请搜索文档

orxvan 发表于 2022-12-29 19:45

import os

执_念 发表于 2022-12-29 20:41

# 如何用Python对一个交互式的命令行程序进行交互?

import subprocess

# 用subprocess模块来启动一个子进程
# 用communicate()方法来与子进程进行交互
# 用subprocess.PIPE来创建一个管道

p = subprocess.Popen(['./interactive.py'],
                        stdin=subprocess.PIPE,
                        stdout=subprocess.PIPE,
                        stderr=subprocess.PIPE)

# 用communicate()方法来与子进程进行交互

out, err = p.communicate(b'hello world')

# 用decode()方法来将字节转换为字符串

print(out.decode('utf-8'))

bj9ye666 发表于 2022-12-30 00:17

感谢 python 大神

xinggevip 发表于 2022-12-30 08:42

1yttoni 发表于 2022-12-29 16:41
嗯?不就是一个无限循环的input()么?

不是这么简单,os模块每次执行CMD命令会话就结束了,不是连续的会话
页: [1] 2
查看完整版本: 如何用Python对一个交互式的命令行程序进行交互?