PopenSpawn и команда ftp

Вопрос - я пытаюсь сделать минимальный пример с последним pexpect, но не могу приступить к работе базового примера (src ниже) в следующем
окружающая среда:
Windows 10, 64-битная команда Python 3.4 является ftp localhost (сервер filezila, работает на localhost)

я знаю, что поддержка окон в pexpect помечена как экспериментальная, но все же было бы полезно, чтобы она заработала... проблема:
если в коде ниже я использую

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 ответов

Другие вопросы по тегам