为了建立ftp连接,我在pexpect中工作,我遵循了以下方法:
#!/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> ', )如果我添加了这行代码,脚本就什么也不做了,我不知道原因是什么--我很感谢您对这个问题的任何帮助。
发布于 2016-03-22 16:35:48
如果您正在调用child.interact(),那么之后就不需要调用child.expect()了。(假设你后来打电话给它)。
交互将子进程的控制权交给交互式用户(键盘上的人)。击键被发送到子进程,并打印子进程的stdout和stderr输出。这简单地把孩子的标准和孩子的标准重复到真正的标准,它与真实的标准对孩子的标准。当用户键入escape_character时,此方法将停止。escape_character的缺省值是^](http://www.bx.psu.edu/~nate/pexpect/pexpect.html)
您正在期待ftp提示ftp>从您的脚本。它将在交互调用后自动出现。如果在调用交互之前调用child.expect('ftp>'),则按下返回将得到所需的提示。但是,在这种情况下,期望'ftp>‘是过时的。
https://stackoverflow.com/questions/36159888
复制相似问题