我写了这个程序:
[mik@mikypc ~]$ cat ftp.py
#!/usr/bin/env python
# This connects to the rediris ftp site
#
import pexpect
child = pexpect.spawn('ftp ftp.rediris.es')
child.expect('Name .*: ')
child.sendline('anonymous')
child.expect('ftp> ')
child.sendline('noah@example.com')
child.expect('ftp> ')
child.sendline('lcd /tmp')
child.expect('ftp> ')
child.sendline('pwd')
child.expect('ftp> ')
child.sendline('bye')
[mik@mikypc ~]$ ./ftp.py
[mik@mikypc ~]$
[mik@mikypc ~]$
[mik@mikypc ~]$
Run Code Online (Sandbox Code Playgroud)
但我看不到输出。我怎么能看到?。当我执行它时,我什么也看不到。我怎么能看到输出?
根据pexpect 文档:
的
logfile_read和logfile_send构件可被用于分别登录从子和输出发送到子输入。有时您不想看到您写给孩子的所有内容。您只想记录孩子发回的内容。例如:Run Code Online (Sandbox Code Playgroud)child = pexpect.spawn('some_command') child.logfile_read = sys.stdout如果您使用的是 Python 3,您将需要传递一个编码以在上面的代码中生成。
要单独记录发送给孩子的输出,请使用logfile_send:Run Code Online (Sandbox Code Playgroud)child.logfile_send = fout
请参阅以下示例:
child = pexpect.spawn('some_command')
child.logfile_read = sys.stdout
Run Code Online (Sandbox Code Playgroud)