pexpect 脚本问题

Issue with pexpect script

我在 pexpect 脚本中工作以建立 ftp 连接,我遵循以下方法:

#!/usr/bin/python
import pexpect
child = pexpect.spawn ('ftp mydomanin.com.mx')
child.expect ('.*[Nn]ame.*: ')
child.sendline ('user')
child.expect ('Password:')
child.sendline ('mypassword')
child.interact()

建立连接时效果很好,但是当我将以下行添加到脚本时出现问题

child.expect ('ftp> ', )

如果我添加此行,脚本不会执行任何操作,我不知道这是什么原因,我将不胜感激任何有关此问题的帮助。

如果您正在调用 child.interact(),则您之后无需调用 child.expect()。 (假设您之后调用它)。

Interact gives control of the child process to the interactive user (the human at the keyboard). Keystrokes are sent to the child process, and the stdout and stderr output of the child process is printed. This simply echos the child stdout and child stderr to the real stdout and it echos the real stdin to the child stdin. When the user types the escape_character this method will stop. The default for escape_character is ^]

您期望脚本中出现 ftp 提示符 ftp>。它会在交互调用后自动出现。如果您在调用交互之前调用 child.expect('ftp>'),则点击 return 将获得所需的提示。但是,在这种情况下,期望 'ftp>' 已过时。