今天在写一个Python脚本时遇到一个问题——同样的代码,在Python终端执行没问题,在脚本里执行却不行,就是下面这段代码:
import pexpect password = 'test2014' p = pexpect.spawn('scp test.tgz root@192.168.1.200:/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 root@192.168.1.200:/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()
为什么要加这一行才能成功,我还解释不了,有能人能解释的请直接回复本帖,谢谢。