gpt4 book ai didi

Python Pexpect 生成对象 Flush

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:41 27 4
gpt4 key购买 nike

我有一个脚本,我在其中使用 pexpect 创建一个 spawn 对象。

代码如下所示:

self.rshcmd='rsh 192.X.X.X'
self.pipe1 = pexpect.spawn(command=self.rshcmd, logfile=sys.stdout,maxread=512)

现在,在我进入这个之后,我希望得到的提示是 >

现在我通过发送 su 成为 su然后给出密码。现在我的提示如预期的那样变成了#

我有一个路由器连接到这台生成的 PC (192.X.X.X),它是 192.168.1.1

我通过发送 telnet 192.168.1.1 远程登录到这个路由器.从这个路由器完成后,我想退出 telnet session 。

所以我发送 exit期待 #因为我将回到生成的 PC 的根目录。但我看到的是我实际上得到了 <作为我的提示。

所以不知何故它发送了两次“退出”。一个让我退出 telnet,另一个让我退出 root。我认为管道没有被冲洗掉,我们得到了一些旧的堆栈命令正在发送。

有没有办法清除管道中所有旧的命令?

从文档中有一个 flush 函数,但它似乎什么也没做:

flush(self)
This does nothing. It is here to support the interface for a
File-like object.

最佳答案

child.send(cmd)
child.pexpect(cmd)
child.send('\n')

代替

child.sendline(cmd)

这将解决您的问题。(但是当发送密码时做 child.sendline(passwrd) )

关于Python Pexpect 生成对象 Flush,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19433046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com