如何用Python对一个交互式的命令行程序进行交互?
想要实现自动化处理CUI应用程序,需要模拟用户在CMD操作应用程序,每次向CMD输入命令,接收CMD返回结果,并根据返回结果继续输入命令;求大佬给个代码示例{:1_889:} 可以用subprocess模块试试 嗯?不就是一个无限循环的input()么? CMD的GUI自动化没搞过,但是我搞过基于遥感影像方面的GUI自动化 os库里面有个popen方法可以实现与命令行交互,可以试试看? 用 pexpect 模块,他就是干这个的,可以帮助实现命令行程序的输入输出自动化,详情请搜索文档 import os # 如何用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')) 感谢 python 大神 1yttoni 发表于 2022-12-29 16:41
嗯?不就是一个无限循环的input()么?
不是这么简单,os模块每次执行CMD命令会话就结束了,不是连续的会话
页:
[1]
2