PopenSpawn和ftp命令

时间:2016-02-22 05:30:23

标签: python windows pexpect

问题 - 我试图用最新的pexpect做出最小的例子, 但是不能在下面的工作中得到基本的例子(src在下面) 环境:
windows 10,64bit python 3.4 命令是ftp localhost(服务器是filezila,在localhost上运行)

我知道pexpect中的windows支持,被标记为实验性的,但是,它仍然是有用的,让它工作.. 问题:
如果在下面的代码我使用

co.expect("",timeout=30)

,然后脚本工作,因为它不是在等待登录后的提示...但由于我需要进行交互并提出更复杂的查询,我需要使用
co.expect("ftp>",timeout=30)

但是那一刻,pexpect等到超时..我发现,在popen_spawn.py中,什么都没有发生。 self.proc.stdout.fileno()是否可以缓冲,并且无休止地等待,直到缓冲区被填满?

import pexpect
from pexpect import popen_spawn
import sys

try:
    hostname = "127.0.0.1"
    co = pexpect.popen_spawn.PopenSpawn('ftp localhost',encoding="utf-8")
    co.logfile = sys.stdout
    co.timeout = 4
    co.expect(":")
    co.sendline("test")
    co.expect(".*word:.*")
    co.sendline("test123")
    co.expect("",timeout=30)
    co.sendline('dir')
    co.expect('ftp>')
    co.close()


except Exception as e:
    print(co)

0 个答案:

没有答案