pexpect输出未显示

0 投票
3 回答
1383 浏览
提问于 2025-04-17 18:22

我们的简单 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 这样的格式。

撰写回答