python pexpect 模块
Pexpect 模块
两个主要接口
pexpect.run('ls -la')
child = pexpect.spawn('scp foo myname@host.example.com:.')
child.expect ('Password:')
##在这个地方会阻塞,直到出现password或者超时推出
child.sendline (mypassword)
管道符的特殊处理
shell_cmd = 'ls -l | grep LOG > log_list.txt'
child = pexpect.spawn('/bin/bash', ['-c', shell_cmd])
child.expect(pexpect.EOF) #等待断开
将log日志重定向到某个文件或者标准输出
fout = open('filename','w+')
child.logfile = fout
child.logfile = sys.stdout
fout.close()
如果是仅仅看child返回的信息,而不看你写给child的信息,那么
child.logfile_read = sys.stdout
写给child的信息则是
child.logfile_send = sys.stdout
try:
child.sendline('ls -l')
child.expect(pexpect.EOF)
#child.prompt()
print child.before
except:
expect不断的读入缓冲区内容等待匹配结束,before代表匹配前的内容,即ls的执行结果,after代表匹配之后的内容
child.before child.buffer
- try:
- index = pexpect (['good', 'bad'])
- if index == 0:
- do_something()
- elif index == 1:
- do_something_else()
- except EOF:
- do_some_other_thing()
- except TIMEOUT:
- do_something_completely_different()
另外在pexpect中,有一个很好用的接口,就是sendcontrol(),比如说sendcontrol('c'),向目标机器发送一个中断符号,主要用在前面的命令执行时间过长,退出当前命令,并使当前命令对后续命令没有影响,比如说expect('~#', 3),此时发生了超时,后续再发送命令,可能那个超时的命令的结果还将输出,就会对当前的结果有影响,发送sendcontrol('c'),则好的多,再expect()一下就ok啦
sendeof(),只能用在开头处,另外对于某些平台是发送ctrl+d命令,所以还是不是很好用
转载于:https://blog.51cto.com/3502990/653254
python pexpect 模块相关推荐
- python pexpect模块详解_python Pexpect模块如何使用 python Pexpect模块使用代码示例
python Pexpect模块如何使用?本篇文章小编给大家分享一下python Pexpect模块使用代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以 ...
- Python pexpect模块的使用及示例代码
简介: Pexpect 是 Expect 语言的一个 Python 实现,用于生成子应用程序并自动控制它们,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块.本文主要 ...
- python pexpect模块详解_python pexpect模块
Pexpect模块简介: Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 ...
- Python Pexpect 模块使用说明
背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初 ...
- python pexpect模块详解_python pexpect原理详解及使用说明
pexpect是python中用于实现SSH,FTP,telnet等命令进行自动化交互,从而无需人工干预实现自动化运维的一个第三方扩展模块.理论的描述过于抽象,这里首先设想一下,如果让您设计一个实现自 ...
- python pexpect模块详解_Python模块Pexpect详解
运行环境:Python3.6 Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh. ...
- python sendline_python Pexpect模块的使用
Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh.ftp.telnet等命令行程 ...
- python pexpect.before与after_python Pexpect模块的使用
Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh.ftp.telnet等命令行程 ...
- python pexpect使用介绍
pexpect 是 expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块. pexpect 的使用范围 ...
最新文章
- Juniper批量新增用户命令工具
- 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
- Boost.MultiIndex 使用随机访问索引的示例
- boost::is_output_streamable用法的测试程序
- sql 多表多行模糊查询_从零开始学习SQL(五)多表查询
- Go 1.18.1 Beta 尝鲜 泛型 FuzzTest workspace mode
- C# Windows服务自动安装与注册
- 日语输入法电脑版_如何安装日语输入法?(手机/电脑安装使用指南)
- 图像预处理第1步:将256色图像转化为灰度图像
- 英特尔12代酷睿处理器强势来袭
- uclinux编译 心得一
- 更换kindle书籍的字体
- for...in 和 for...of
- mtk手机从刷机到修改客户需求的点点滴滴
- 聊斋2聂小倩java华语版,九个版本的聂小倩,看全的没有几个,经典也不是王祖贤!...
- 合肥工业大学 慕课 梦溪笔谈 习题答案
- java 8 lambda reduce_[Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化
- Baxter官方例程
- 嵌入式Linux驱动笔记(二十五)------Input子系统框架
- 方正web开发平台之Web安全