我在python中实现了以下方法:
def install_s3cmd():
subprocess.call(['sudo easy_install s3cmd'])
# assuming that by now it's already been installed
import pexpect
# now use pexpect to configure s3cdm
child = pexpect.spawn('s3cmd --configure')
child.expect ('(?i)A
我目前正在用下面的代码将一些输入传递给带有pexpect的进程:
p = pexpect.spawn('cat', timeout=5.0 )
p.maxread = 5000
p.setecho(False) # prevent the process from echoing stdin back to us
INPUT_LEN = 1024
p.sendline('a'*INPUT_LEN)
print p.readline() # pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
当INPU
我正在尝试使用pexpect ssh进入一台计算机,但我不想返回到原来的计算机。我的代码是:
#!/usr/bin/python2.6
import pexpect, os
def ssh():
# Logs into computer through SSH
ssh_newkey = 'Are you sure you want to continue connecting'
# my ssh command line
p=pexpect.spawn('ssh build@10.51.11.10')
i=p.ex
我对ansible非常陌生,我试图运行一个剧本来更改主机的根密码,所以我使用pexpect模块的expect命令。我成功地在主机上和运行剧本的本地服务器上安装了python2.7的pExpev4.7。但是,当运行剧本时,它会出现错误:“需要pexpect python模块”。
根据要求,pexpect和python的版本是正确的。
Files installed on hosts for pexpect and python:
/usr/lib/python2.7/site-packages/pexpect
/usr/lib/python2.7/site-packages/pexpect-4
为了解决在远程服务器上以根用户身份运行python脚本的问题,我了解了python python包,使用以下代码:
import pexpect
# Set the username for ssh connection
username = 'zod1@<remote-server-ip>'
# Take a valid password from the user
Password = input("Enter the login password of %s: " %username)
# Run ssh command using sp
我无法使用pip安装pexpect。下面是错误:
$ sudo -H pip install pexpect
Collecting pexpect
Could not find a version that satisfies the requirement pexpect (from
versions: )
No matching distribution found for pexpect
$ sudo -H pip install --upgrade pip
Requirement already up-to-date: pip in /Library/Python/2.7/site
我正在运行CentOS7,并在Python3.5中安装了pexpect。但是,当我调用任何方法时,它将返回一个错误,说明属性不存在。知道为什么会发生这种事吗?我读到,这可能是由于目录中的文件名pexpect.py造成的,但是在同一个目录中没有一个名为pexpect.py的文件。
$ pip3.5 freeze | grep pexpect
pexpect==4.2.1
示例代码:
# This connects to the openbsd ftp site and
# downloads the recursive directory listing.
import pexpect
chil
我正在将代码迁移到python 3.4.3。这段代码在python 2.4.3中运行得很好。但在这里,它会抛出python 3.4.3中的错误。我应该使用与预期不同的东西吗?下面是我的代码片段,它得到了错误:
telconn=pexpect.spawn('telnet 10.24.12.83')
telconn.logfile = sys.stdout
login=telconn.expect([":","key to proceed.",">"])
if login==0:
t
我现在很困惑。
pexpect 声明如下:
Remember that Pexpect does NOT interpret shell meta characters such as
redirect, pipe, or wild cards (>, |, or *). This is a common mistake.
If you want to run a command and pipe it through another command then
you must also start a shell. For example::
child = pexpect.spaw
命令systemctl status dnsmasq和pexpect.spawn的输出被截断。
pexpect.spawn('systemctl status dnsmasq', encoding='utf-8')
i = child.expect([".*\$ ", pexpect.EOF, pexpect.TIMEOUT])
if i == 1:
child.sendcontrol("c")
print(child.before)
见下面的输出图像:
我对sshd.service进行了测试,结果是一样的