python pexpect
2016-04-01 10:29
561 查看
安装
https://pypi.python.org/pypi/pexpect下载pexpect 4.0.1
放到ubuntu中解压
tar -xzvf pexpect 4.0.1.tar.gz
到达相应路径
python ./setup.py install
即可安装
安装时候报了个错
SyntaxError: ('invalid syntax', ('/usr/local/lib/python2.7/dist-packages/pexpect/async.py', 16, 30, ' transport, pw = yield from asyncio.get_event_loop()\\\n'))
查了查没结果
直接进入python环境import pexpect试试
发现有问题
>>> import pexpect Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pexpect/__init__.py", line 75, in <module> from .pty_spawn import spawn, spawnu File "pexpect/pty_spawn.py", line 11, in <module> import ptyprocess ImportError: No module named ptyprocess
少了个模块,
https://pypi.python.org/pypi/ptyprocess#downloads
下了个ptyprocess
一样解压,安装,
之后import pexpect没问题,可以用了。
或者用pip安装
安装pip
$ sudo apt-get install python-pip python-dev build-essential $ sudo pip install --upgrade pip $ sudo pip install --upgrade virtualenv
然后安装pexpect
sudo pip install pexpect
pexpect and SSH
可以用pexpect来进行ssh访问先给脚本
import pexpect def sudo(ssh_cmd, passwd): message="error" ret = -1 ssh = pexpect.spawn(ssh_cmd) try: i = ssh.expect(['continue connecting (yes/no)?', 'password:'], timeout=5) ssh.sendline('yes\n') i = ssh.expect(['password:'],timeout=5) ssh.sendline(passwd) #ssh.expect(pexpect.EOF) #print ssh.before #print ssh.after r = ssh.read() message = r ret = 0 except pexpect.EOF: message = "" ret = 0 except pexpect.TIMEOUT: message = "timeout" ret = -2 finally : ssh.close( ) return ret, message ssh_cmd="ssh X.X.X.X\n ifconfig" passwd="XXXX" ret, message=sudo(ssh_cmd, passwd) print ret,message
很简单的一个小脚本,通过IP和密码SSH远程登录X.X.X.X机器,查看其网卡配置。
这里
#导入模块 import pexpect # 为 ssh 命令生成一个 spawn 类的子程序对象. ssh = pexpect.spawn(ssh_cmd) #获取输出,为前者则i=0,后者则i=1 i = ssh.expect(['continue connecting (yes/no)?', 'password:'], timeout=5) #输入 ssh.sendline(passwd) #获取执行命令的输出 r = ssh.read()
输出为
eth0 BLABLA lo BLABLA
相关文章推荐
- Python脚本执行MySQL语句时停住
- [置顶] win10安装Python出现问题解决方法
- numpy.ndarray.flat/flatten 与 Spark 下的 flatMap
- Day3、Python
- python学习笔记(session)
- Python函数的各种参数(含星号参数)
- Python 基础 —— re:正则表达
- Python中遇到"UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequ
- python基于隐马尔可夫模型实现中文拼音输入
- Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
- python3.5 + django1.9.1+mysql
- python中的条件语句,分支语句以及逻辑运算符和比较运算符
- 学python过程中遇到的一些问题及解决方法
- python爬虫(爬游民星空图片)_beautifulsoup爬虫模版
- python基于隐马尔可夫模型实现中文拼音输入
- python初识
- Python学习第十五天
- python 下载页面数据 到 execl表
- 一行 Python 实现并行化 -- 日常多线程操作的新思路
- Python学习笔记day11