0

我们简单的 pexpect 脚本有这个:

import pexpect
import sys

test = pexpect.spawn('ftp www.today.com')
test.logfile = sys.stdout
test.expect('Name.*')

但是,在调用脚本的 shell 上,没有显示输出。相反,它似乎挂起,但我们可以看到进程 ftp ... 已生成。

如何在调用脚本的 shell 上显示输出?

谢谢

4

3 回答 3

1

这行应该:

test = pexpect.spawn('ftp www.today.com')

不是:

test = pexpect.spawn('ftp ftp.today.com')

因为通常如果你愿意ftp,你必须使用ftp.something.com.

于 2013-03-08T09:04:15.533 回答
0

test.logfile 将只包含命令的输出,命令行本身并没有记录在 logfile 属性中。

因此,只要生成命令并且没有输出,调用脚本时外壳中不会显示任何内容。例如,当达到 ftp 连接超时时,将会有一个显示。

于 2013-03-08T14:19:27.407 回答
0

您可能需要使用logfile_read. 这是代码:

import pexpect
import sys
test = pexpect.spawn('ftp www.today.com')
test.logfile_read = sys.stdout
test.expect('Name.*')
于 2015-07-02T06:43:33.490 回答