2015-04-30 3 views
1

Я новичок в Python и в настоящее время узнал только несколько вещей, исследуя онлайн. Просто хотел знать, почему я получаю «ошибку» как результат, а не «успех». Пожалуйста, смотрите код ниже:Python скрипт для проверки статуса Namenode

#! /usr/bin/python -v 

import os 
import subprocess 

f = os.popen("hdfs haadmin -getServiceState nn2") 
now = f.read() 
status = "active" 
if now == status: 
     print "success" 
else: 
     print 'error' 

Спасибо, Анил

+0

Вы можете сделать 'print now' вместо' print 'error'' и сообщить нам, что такое вывод? –

+0

Чтобы быть более безопасным, вы должны, вероятно, сделать, если 'now.strip() == status' –

+0

#!/USR/бен/питон -v импорт Os F = os.popen ("HDFS haadmin -getServiceState NN2") теперь = f.read() печать Теперь статус статус = "активный" печати если теперь == статус: печать «успех» elif now> = status: print "elif success" else: print "error" – Anil

ответ

0

(движущаяся комментарий к ответу)

Когда вытягивать текст из чего-то вроде POPEN или где-нибудь, я хотел бы использовать .strip() и обычно .lower() к очистите новые строки и дополнительные пробелы.

#! /usr/bin/python -v 

import os 
import subprocess 

f = os.popen("hdfs haadmin -getServiceState nn2") 
now = f.read().lower().strip() # add strip here 

if now == "active": 
     print "success" 
else: 
     print 'error:', now # why not print out what it output? 
Смежные вопросы