pexpect输出未显示
我们的简单 pexpect 脚本是这样的:
import pexpect
import sys
test = pexpect.spawn('ftp www.today.com')
test.logfile = sys.stdout
test.expect('Name.*')
但是,在运行这个脚本的命令行上,没有任何输出显示。
相反,它似乎在卡住,但我们可以看到 ftp 这个进程已经启动了。
怎么才能让脚本在命令行上显示输出呢?
谢谢!
3 个回答
0
你可能需要使用 logfile_read
。下面是代码:
import pexpect
import sys
test = pexpect.spawn('ftp www.today.com')
test.logfile_read = sys.stdout
test.expect('Name.*')
0
test.logfile 只会记录命令的输出内容,而不会把命令本身写进日志文件里。
所以,只要命令被执行了,并且没有任何输出,当你运行脚本的时候,终端上不会显示任何东西。比如说,当 FTP 连接超时的时候,就会有显示。
1
这一行代码:
test = pexpect.spawn('ftp www.today.com')
是不是应该改成:
test = pexpect.spawn('ftp ftp.today.com')
因为通常情况下,如果你想用 ftp
,你需要使用 ftp.something.com
这样的格式。