Python中文
首页
教程
问答
标签
搜索
登录
注册
pexpect setecho不工作
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试telnet到Cisco路由器并使用pexpect发出命令。它可以工作,但是sendline()在输出中重复。即使使用setecho设置为False。代码是:</p> <pre><code>''' Created on Nov 19, 2012 @author: Amit Barik ''' import pexpect hostname = 'hostname' login_cmd = 'telnet ' + hostname + '.net' username = 'username' password = 'pwd' prompt = hostname + '#' p = pexpect.spawn(login_cmd) p.setecho(False) p.logfile = open('Log.log', 'w+') p.expect('Username:') print '1',repr(p.before) p.sendline(username) p.expect('Password:') print '2',repr(p.before) p.sendline(password) p.expect(prompt) print '3',repr(p.before) cmd = 'show clock' p.sendline(cmd) p.expect(prompt) print 'Output for {0}'.format(cmd), repr(p.before) </code></pre> <p>输出为:</p> <pre><code># On Python Console Output for show clock 'show clock\r\n00:16:40.692 UTC Tue Nov 20 2012\r\n' # On Log File Username: username username Password: pwd My Cisco Banner hostname#show clock show clock 00:16:40.692 UTC Tue Nov 20 2012 hostname# </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>所以,我发现。。。</p> <ul> <li>setecho似乎不起作用(在输出之前的pexpect.before中,存在pexpect.sendline文本)。唯一的解决办法是剥离管柱。类似伪代码<code>pexpect.before.strip(pexpect.sendline)</code></li> <li>此外,在日志记录时,logfile_read不包含回声,但logfile包含(与setecho值无关)</li> </ul>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
从Django temp访问容器的方法
1 回答
从Django temp请求ModelForm实例
3 回答
从Django temp返回JSON
5 回答
从Django timesince模板等效项中删除尾部数据
6 回答
从Django timesin删除尾随数据
7 回答
从Django UpdateView模板下载文件
10 回答
从Django url传递“start”会出现错误“start()只接受2个参数(给定1个)”
10 回答
从Django url运行的websockets错误:RuntimeError:线程“Dummy1”中没有当前事件循环
8 回答
从Django user mod获取用户全名
10 回答
从Django UserCreateForm中删除帮助文本
9 回答
从Django values()获取外键值
6 回答
从Django vi中的按钮获取click事件
1 回答
从Django vi从HttpResponse检索JSON
8 回答
从Django vi以json形式返回的数据中检索元素
8 回答
从Django vi取消或取消eventlet中的芹菜任务
7 回答
从Django vi启动多核后台进程
5 回答
从Django vi开始
1 回答
从Django Vi构建HTML
3 回答
从Django vi访问进程数据
3 回答
从Django vi调用pysnmp发送超时
4 回答