2013-05-19 3 views
0

Я пытаюсь найти определенную строку из вывода команды в терминале. Однако он не работает.Найти b '' в командном выводе?

Вот команда, я бегу:

check = subprocess.check_output("netctl list | sed -n 's/^\* //p'", shell=True) 

Это возвращает один из двух вещей. Если вы не подключены, он возвращает b '', в противном случае он возвращает b '$ networkname \ n'.

код, я использую, чтобы проверить это следующим образом:

p = re.compile(r"\bb''\b") 
if p.search("b''"): 
    print("False") 
    return False 
else: 
    print("True") 
    return True 

Однако, он не возвращает истину независимо от того, что. Я также пробовал:

if check == "b''": 

но это также возвращает true независимо от того, что. Я теряю рассудок здесь. Что заставляет его не работать?

Спасибо заранее,

Cody

ответ

2

Дело в том, что вы должны искать пустой bytes буквального b'', а не строку "b''".

if check == b'': 
+1

Вау ... позвольте мне сказать, что я чувствую себя идиотом. –

Смежные вопросы