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

  1. try:
  2. index = pexpect (['good', 'bad'])
  3. if index == 0:
  4. do_something()
  5. elif index == 1:
  6. do_something_else()
  7. except EOF:
  8. do_some_other_thing()
  9. except TIMEOUT:
  10. do_something_completely_different()

另外在pexpect中,有一个很好用的接口,就是sendcontrol(),比如说sendcontrol('c'),向目标机器发送一个中断符号,主要用在前面的命令执行时间过长,退出当前命令,并使当前命令对后续命令没有影响,比如说expect('~#', 3),此时发生了超时,后续再发送命令,可能那个超时的命令的结果还将输出,就会对当前的结果有影响,发送sendcontrol('c'),则好的多,再expect()一下就ok啦

sendeof(),只能用在开头处,另外对于某些平台是发送ctrl+d命令,所以还是不是很好用

参考文献:
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect1/
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/

转载于:https://blog.51cto.com/3502990/653254

python pexpect 模块相关推荐

  1. python pexpect模块详解_python Pexpect模块如何使用 python Pexpect模块使用代码示例

    python Pexpect模块如何使用?本篇文章小编给大家分享一下python Pexpect模块使用代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以 ...

  2. Python pexpect模块的使用及示例代码

    简介: Pexpect 是 Expect 语言的一个 Python 实现,用于生成子应用程序并自动控制它们,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块.本文主要 ...

  3. python pexpect模块详解_python pexpect模块

    Pexpect模块简介: Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 ...

  4. Python Pexpect 模块使用说明

    背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初 ...

  5. python pexpect模块详解_python pexpect原理详解及使用说明

    pexpect是python中用于实现SSH,FTP,telnet等命令进行自动化交互,从而无需人工干预实现自动化运维的一个第三方扩展模块.理论的描述过于抽象,这里首先设想一下,如果让您设计一个实现自 ...

  6. python pexpect模块详解_Python模块Pexpect详解

    运行环境:Python3.6 Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh. ...

  7. python sendline_python Pexpect模块的使用

    Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh.ftp.telnet等命令行程 ...

  8. python pexpect.before与after_python Pexpect模块的使用

    Pexpect简介 在讲解Pexpect之前,我们需要先了解一下Expect这个脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,可以用来完成ssh.ftp.telnet等命令行程 ...

  9. python pexpect使用介绍

    pexpect 是 expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块. pexpect 的使用范围 ...

最新文章

  1. Juniper批量新增用户命令工具
  2. 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
  3. Boost.MultiIndex 使用随机访问索引的示例
  4. boost::is_output_streamable用法的测试程序
  5. sql 多表多行模糊查询_从零开始学习SQL(五)多表查询
  6. Go 1.18.1 Beta 尝鲜 泛型 FuzzTest workspace mode
  7. C# Windows服务自动安装与注册
  8. 日语输入法电脑版_如何安装日语输入法?(手机/电脑安装使用指南)
  9. 图像预处理第1步:将256色图像转化为灰度图像
  10. 英特尔12代酷睿处理器强势来袭
  11. uclinux编译 心得一
  12. 更换kindle书籍的字体
  13. for...in 和 for...of
  14. mtk手机从刷机到修改客户需求的点点滴滴
  15. 聊斋2聂小倩java华语版,九个版本的聂小倩,看全的没有几个,经典也不是王祖贤!...
  16. 合肥工业大学 慕课 梦溪笔谈 习题答案
  17. java 8 lambda reduce_[Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化
  18. Baxter官方例程
  19. 嵌入式Linux驱动笔记(二十五)------Input子系统框架
  20. 方正web开发平台之Web安全

热门文章

  1. 聊聊WebClient的LoadBalance支持
  2. 总体参数的估计(概念)
  3. java NIO概述
  4. Exchange日常管理之二十一:管理邮件归档
  5. 使用SVCUtil.exe生成客户端代理类和配置文件
  6. c语言 结构成员 变量引用,C++结构体变量的引用
  7. Android异步下载网络图片(其三:ExecutorService)
  8. htm tt cite em u
  9. djngo快速实现--使用Bootstrap
  10. Linux 内核开发 - Eclipse内核开发环境搭建