pexpect正确的打开方式

Posted 昨、夜星辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pexpect正确的打开方式相关的知识,希望对你有一定的参考价值。

今天在写一个Python脚本时遇到一个问题——同样的代码,在Python终端执行没问题,在脚本里执行却不行,就是下面这段代码:

import pexpect

password = test2014

p = pexpect.spawn(scp test.tgz [email protected]:/home/backup/)
index = p.expect([password, yes/no])
if index == 0:
    p.sendline(password)
else:
    p.sendline(yes)
    p.expect(password)
    p.sendline(password)

读者如果不信的话可以对以上代码进行修改测试。

最后,通过百度,我找到了解决方法——就是在末尾加一行,最终的代码如下:

import pexpect

password = test2014

p = pexpect.spawn(scp test.tgz [email protected]:/home/backup/)
index = p.expect([password, yes/no])
if index == 0:
    p.sendline(password)
else:
    p.sendline(yes)
    p.expect(password)
    p.sendline(password)
p.read()

为什么要加这一行才能成功,我还解释不了,有能人能解释的请直接回复本帖,谢谢。

以上是关于pexpect正确的打开方式的主要内容,如果未能解决你的问题,请参考以下文章

如何编译 C 代码并使用 Pexpect 运行编译代码?

python 使用pexpect实现自动交互示例

pexpect学习阶段

关于pexpect的使用

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

使用 Python 在 Linux 上实现一键回归测试