2016-09-17 2 views
-1

Я пытаюсь автоматизировать меню CLI в системе Linux, где во многих случаях я должен обеспечить основанное условие.pexpect: Как совместить строку

у меня есть подсказка с ': ', я пытаюсь соответствовать (111.222.333.444) строке (напечатанной в child.before) ниже,

111.222.333.444 
: 

если строка соответствует, то мне нужно может послать другую команду (sendlind). однако я не уверен, как это сделать с python pexpect. если какой-либо орган может объяснить или предоставить пример, это будет хорошей помощью.

ответ

1

Вы можете использовать regexp (import "re" library) для компактного кода, который проверяет строку на ожидаемый формат. Этот метод недостаточно для проверки правильности IP. Самый простой способ проверить, что IP достижим, - использовать пинг.

import re; 
# fmt1 accepts only IPs with 3-digit groups: 123.123.123.123 
fmt1='^([0-9]{3}\.){3}[0-9]{3}$'; 

# fmt2 accepts IPs with 1-3 digit groups e.g. 13.123.1.1 
fmt2='^([0-9]{1,3}\.){3}[0-9]{1,3}$'; 

exp=re.compile(fmt1); 

def chk(s): 
    x=exp.match(s); 
    if x: 
     print(s, ' = match'); 
     return 1; 
    else: 
     print(s, ' = mismatch'); 
     return 0; 
Смежные вопросы