我们简单的 pexpect 脚本有这个:
import pexpect
import sys
test = pexpect.spawn('ftp www.today.com')
test.logfile = sys.stdout
test.expect('Name.*')
但是,在调用脚本的 shell 上,没有显示输出。相反,它似乎挂起,但我们可以看到进程 ftp ... 已生成。
如何在调用脚本的 shell 上显示输出?
谢谢
这行应该:
test = pexpect.spawn('ftp www.today.com')
不是:
test = pexpect.spawn('ftp ftp.today.com')
因为通常如果你愿意ftp
,你必须使用ftp.something.com
.
test.logfile 将只包含命令的输出,命令行本身并没有记录在 logfile 属性中。
因此,只要生成命令并且没有输出,调用脚本时外壳中不会显示任何内容。例如,当达到 ftp 连接超时时,将会有一个显示。
您可能需要使用logfile_read
. 这是代码:
import pexpect
import sys
test = pexpect.spawn('ftp www.today.com')
test.logfile_read = sys.stdout
test.expect('Name.*')