pexpect脚本问题

时间:2016-03-22 16:23:21

标签: pexpect

我正在使用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> ', )

如果我添加此行,脚本不会做任何事情,我不知道这是什么原因我将不胜感激这个问题。

1 个答案:

答案 0 :(得分:0)

如果您致电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>'),则点击返回将获得所需的提示。期待' ftp>'但是在这种情况下已经过时了。