Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。shell 命令expect使用 http://blog.51cto.com/superleedo/1931418安装pexpect打开 https://pypi.org/project/pexpect/#files下载 wget https://files.pythonhosted.org/packages/09/0e/75f0c093654988b8f17416afb80f7621bcf7d36bbd6afb4f823acdb4bcdc/pexpect-4.5.0.tar.gztar zxf pexpect-4...
Pexpect是一个纯Python模块,可以用来和ssh、ftp、passwd、telnet等命令行命令进行交互使用,在Linux系统下尤其好用,下面我们就来具体来看一下Python安装使用命令行交互模块pexpect的基础教程:一、安装1、安装easy_install工具wget http://peak.telecommunity.com/dist/ez_setup.pypython ez_setup.py 安装easy_install工具(这个脚本会自动去官网搜索下载并安装)python ez_setup.py -U setuptools升级easy_install工具2、安装pexpe...
一、安装
1、安装easy_install工具wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py 安装easy_install工具(这个脚本会自动去官网搜索下载并安装)python ez_setup.py -U setuptools升级easy_install工具
2、安装pexpecteasy_install Pexpect
测试一下:[root@OMS python]# python
Python 2.7.3rc1 (default, Nov 7 2012, 15:03:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copy...
我在使用pexpect运行telnet脚本时遇到问题.问题是它仅从脚本中获取用户名而不是从密码中获取.它使用password的值但未输入相同的值.import pexpect
import sys,time
ipaddr = "192.168.100.85"
username = "usr"
password = "Pass@123"
telconn = pexpect.spawn("telnet " + ipaddr)
telconn.expect(":")
telconn.logfile=sys.stdout
time.sleep(15)
telconn.sendline(username + "\r")
telconn.expect(":")
telconn.sendline(passw...
我有一个python的pexpect代码,它在其中发送文件中列出的一些命令.
假设我将一些命令存储在名为commandbase的文件中ls -l /dev/
ls -l /home/ramana
ls -l /home/ramana/xyz
ls -l /home/ramana/xxx
ls -l /home/ramana/xyz/abc
ls -l /home/ramana/xxx/def
ls -l /home/dir/等等.
在这里观察到,在我将dev和home作为变量之后.如果我再次在家中,ramana和dir将作为变量.如果进入ramana,则又有xyz和xxx.所以基本上它是形式ls -l /varia...
我正在尝试遍历服务器列表和密码来更改一组服务器上的sshd配置,以便我可以使用无密码的SSH密钥通过root登录/运行命令.
我可以在bash中轻松完成此操作,但是我正在尝试学习Python,并且(显然)希望放弃手动输入密码.
这是我想做的事:scp ~/.ssh/id_rsa.pub /etc/ssh/sshd_config USER@IP:/tmp/ssh -o StrictHostKeyChecking=no -t USER@IP "su - root -c \"chown root:root /tmp/id_rsa.pub; chmod 600 /tmp/id_rsa.pub; chown root:r...
我试图从run.py执行client.py. client.py提示输入.我编写了一个简单的pexpect代码,但它与提示符不匹配并挂起.
这是我的代码
client.pyinput = raw_input("Please data, default [ /Anything ]:\n")
if input == "Admin":print "Welcome Admin"
else:print "Welcom Guest"run.pyimport pexpect
child = pexpect.spawn ('python client.py')
child.expect('Please data, default [ /Anything ]:\n')
child.sendline ('anonymous')这是...
如何使用pexpect发送上,下,左,右键等光标移动.下面的示例是自动化elinks,它使用向上/向下键选择页面上的不同链接.from pexpect import spawn
child = spawn('elinks http://python.org')
#what goes here to send down key
child.interact()解决方法:怎么样使用转义序列up(^ [[A]或down(^ [[B]像这样.child.send("\033[A") # up
child.send("\033[B") # down
我想在串口上使用pexpect.我按照建议使用fdpexpect.但我注意到expect()不遵守超时.相反,EOF发生了.ser = serial.Serial(sys.argv[1], 9600)
fd = fdpexpect.fdspawn(ser.fd)
fd.send('%s\r' % username)
i = fd.expect(['Password:', pexpect.TIMEOUT], timeout=30)
if i == 0:fd.send('%s\r' % password)
else:print 'Boom!'似乎不是捕获它们,而是几乎立即引发pexpect.exceptions.EOF.如果我将pexpect.EOF添加到匹配列表中,EOF将立...
我正在使用python pexpect编写一个脚本来在远程机器上执行另一个脚本.它在正常情况下工作正常,但如果远程脚本中有time.sleep,则会失败.
我想到远程机器,在后台启动脚本然后离开.这可能吗 ?
有人可以建议替代方案或让我知道如何解决这个问题?解决方法:你考虑过paramiko吗?
这是一个例子……#!/usr/bin/env python
import paramikossh = paramiko.SSHClient()
ssh.load_system_host_keys()ssh.connect(hostname='example.com', po...
我遇到了pexpect问题.我试图从tralics中获取输出,这些tralics读取乳胶方程并发出MathML表示,如下所示:1 ~/ % tralics --interactivemath
This is tralics 2.14.5, a LaTeX to XML translator, running on tlocal
Copyright INRIA/MIAOU/APICS/MARELLE 2002-2012, Jos\'e Grimm
Licensed under the CeCILL Free Software Licensing Agreement
Starting translation of file texput.tex.
No configuration file.
> $x+y=z$
<formula...
Pexpect简单的测试——一个 expect的python实现
@for & ever 2010-07-03
Pexpect 是一个自动控制的 Python 模块,可以用来ssh、ftp、passwd、telnet 等命令行进行自动交互。
官方网站是 http://www.noah.org/
通过它,可以实现类似 expect 的操作。
例如我们可以用它来写python脚本,实现批量对一系列(大量的、配置相同的)的linux服务器进行操作。
一、安装方式
以root用户依次执行如下命令:
wget http://pexpect.sourcef...
我正在写一些pexpect的东西,这些东西基本上是通过telnet发送命令的.
但是,我的telnet会话可能会死掉(由于网络问题,电缆被拔出等等).
我该如何初始化telnet会话,以便它死亡时可以捕获并告诉它重新连接,然后继续执行其所在的代码.
这可能吗?解决方法:恕我直言,使用当前维护的库(例如exscript或telnetlib)通常会更好,但是有效的方法是:import pexpect as pxcmds = ['cmd1', 'cmd2', 'cmd3']
retcode = -1
while (retcode<10):if (re...
这与我的另一个帖子multithreading issue with wx.TextCtrl (or underlying GTK+)相关,在经过主要线程调用GUI交互的纠正后,我发现它再次出现在管道块缓冲问题上.那么如何从subprocess.stdout获得自发输出?
简而言之,目前我正在使用subprocess.popen来启动一个外部长时间运行的程序.launchcmd=["EXTERNAL_PROGRAM_EXE"]p = subprocess.Popen(launchcmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)se...