吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1202|回复: 19
收起左侧

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

[复制链接]
xinggevip 发表于 2022-12-29 14:52
想要实现自动化处理CUI应用程序,需要模拟用户在CMD操作应用程序,每次向CMD输入命令,接收CMD返回结果,并根据返回结果继续输入命令;
求大佬给个代码示例

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

minicorner 发表于 2022-12-29 16:16
可以用subprocess模块试试
1yttoni 发表于 2022-12-29 16:41
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命令会话就结束了,不是连续的会话
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表