Как мне нажать кнопку "Ввод" после ввода пароля через командную строку?

Я использовал следующий код, который запускает команду и запрашивает пароль. Когда я вводил пароль с помощью sendline, логин почему-то не происходил.

Как отладить это и убедиться, что кнопка "Enter" отправлена?

Код:

    child = pexpect.spawn('tool --server=commander.company.com login username',logfile=sys.stdout)
    child.expect('Password:')
    child.sendline('com0201')

1 ответ

Решение

sendline() автоматически отправит символ новой строки, определенный в os.linesep, поэтому вам не нужно делать ничего особенного, чтобы отправить "кнопку ввода".

У вас включено ведение журнала; какой выход вы видите?

Что-то еще, чтобы попробовать child.interact() после отправки пароля. Это позволит вам взаимодействовать с дочерним процессом и может дать некоторую подсказку, если возникнет проблема.

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