запрос pexpect с новой строкой

#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)
  

Если я правильно читаю ваш код, вы получили отправленную строку раньше, чем ожидали. Вам нужно это переключить.