博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初学Pexpect
阅读量:6906 次
发布时间:2019-06-27

本文共 1487 字,大约阅读时间需要 4 分钟。

概述

Pexpect 是 Don Libes 的 的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。

下载

Pexpect 可以从:

https://sourceforge.net/projects/pexpect/

https://pypi.python.org/pypi/pexpect/#downloads

这两个网站下下载,一个是2.3的一个是最新的4.1的至于区别,暂时还没有研究。

安装

安装异常的简单

[root@test ~]# tar -zxvf pexpect-2.3.tar.gz [root@test ~]# cd pexpect-2.3[root@test pexpect-2.3]# python setup.py install  --注意需要用root权限执行此句

下面就写一个简单的示例吧,网上有很多相同的示例但是有人还是不知道怎么执行,我开始学的时候也是研究了一下才看明白

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3  4 import pexpect 5  6 def ssh_cmd(ip, passwd, cmd):   --需要简单说明下cmd是你想执行的命令 7     ret = -1 8     ssh = pexpect.spawn('ssh sm01@%s "%s"' % (ip, cmd))  --也可以把用户名写成变量的形式 9     try:10         i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)11         if i == 0 :12             ssh.sendline(passwd)13         elif i == 1:14             ssh.sendline('yes\n')15             ssh.expect('password: ')16             ssh.sendline(passwd)17         ssh.sendline(cmd)18         r = ssh.read()19         print r20         ret = 021     except pexpect.EOF:22         print "EOF"23         ssh.close()24         ret = -125     except pexpect.TIMEOUT:26         print "TIMEOUT"27         ssh.close()28         ret = -229     return ret30 ssh_cmd("***.***.***.***","password","df -h") --ssh相应的主机IP,密码和想要运行的命令。

 还会持续更新,今天之学了这么一点~嘿嘿~

转载于:https://www.cnblogs.com/tian880820/p/5535113.html

你可能感兴趣的文章
火星人是护法天使、科普神童
查看>>
接收消息----接收事件推送
查看>>
java中的三种取整函数
查看>>
压力单位MPa、Psi和bar之间换算公式
查看>>
startActivityForResult用法详解
查看>>
Sql Server之旅——第六站 使用winHex利器加深理解数据页
查看>>
用CIL写程序:你好,沃尔德
查看>>
安装 CentOS 7 后必做的七件事
查看>>
线程间的通信
查看>>
工厂模式(转)
查看>>
翻看之前写过的博客有感
查看>>
比较规则
查看>>
【Linux】linux经常使用基本命令
查看>>
Java设计模式论述
查看>>
谷歌如何测试软件 —— 第三部分
查看>>
NSURLRequest with UserAgent
查看>>
闲聊桌面应用开发[Win16->Win32->ATL/WTL/MFC->WinForm->WPF/Silverlight/WinRT]
查看>>
Android SwipeRefreshLayout 官方下拉刷新控件介绍
查看>>
ArcGIS Pro体验01——申请、下载、安装
查看>>
Weblogic12 集群部署
查看>>