#regex #python-2.7 #pexpect
#регулярное выражение #python-2.7 #pexpect
Вопрос:
Я автоматизирую настройку приложения на CentOS с помощью pexpect. Мое приглашение — это новая строка, как показано ниже,
Please enter command below.
В следующей строке (которая является пустой / новой строкой) мне нужно ввести необходимые команды,
я попробовал пару вещей r'b below.b'
, чтобы проверить наличие новой строки r'rn(w )'
, пробелов (s)
и так далее, Но ни один из них не соответствует expect
подсказке.
например.
child.sendline('a')
child.expect([pexpect.TIMEOUT,r'b below.b'])
print child.before
было бы очень полезно, если бы кто-нибудь мог предложить какие-либо предложения по этому поводу..
Комментарии:
1. Попробуйте
r'.*b below.b'
сexpect
2. Или
.expect(r'Please enter command below.rn')
3.
pexpect
считывает поток и не может проверить последовательность символов, которую вы обязаны использоватьexpect
.
Ответ №1:
(Я понимаю, что это устарело, но это может кому-то помочь)
Это работает для меня с pxssh, который в основном является оболочкой вокруг этого:
expect_string = 'below.'
child.expect(expect_string)
child.sendline('a')
print(child.before)
Если я правильно читаю ваш код, вы получили отправленную строку раньше, чем ожидали. Вам нужно это переключить.