Использование pexpect print python REPL поток постепенно - PullRequest
0 голосов
/ 17 января 2020

Что я хотел бы сделать, это напечатать каждую новую строку python REPL с использованием pexpect с приращением. Я знаю, что replwrap существует, но для моего личного понимания pexpect я пробую этот проект. Идея моего кода выглядит следующим образом:

import pexpect    
child = pexpect.spawn('/usr/bin/python')
child.expect('>>>')
child.sendline('import time')
child.expect('>>>')
child.sendline('for i in range(10): print(i);time.sleep(1)')
child.sendline('')

while True:
    match = child.expect(['>>>', '.*'])
    if match == 2:
        print(child.before)
    else:
        break

Моя главная проблема здесь ['>>>', '. *']. Я пытаюсь найти в потоке приглашение python (>>>) или что-то еще. Если что-то еще приходит, я хочу напечатать, я нахожу в потоке, и если появляется подсказка, прервите l oop. Проблема: я никогда не нажимал ничего, кроме подсказки.

...