我使用SSH登錄到遠程節點,獲取服務的狀態並希望打印它。Python - 擺脫不必要的輸出
在我的遠程節點上運行bash命令yield。
[[email protected] ~]# redis-cli -a '!t3bmjEJss' info replication | grep role | cut -d':' -f2
slave
是香港專業教育學院編寫的Python代碼是
def serviceDetails(ip,svc):
if svc == 'redis-server':
ssh = subprocess.Popen(["ssh", "%s" % ip, "redis-cli -a '!t3Z9LJt2_wmUDbmjEJss' info replication | grep role | cut -d':' -f2"], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
print (result)
else:
print ("Redis service is not running on this node")
,我從result
變量中獲得的輸出爲:
[b'slave\r\n']
爲什麼所有這些多餘的字符出現?我該如何擺脫它們?
'result = result.encode('utf-8')。strip()' – zondo
@zondo這是一個列表嗎?由於現在即時得到 回溯(最近通話最後一個): 文件「」,1號線,在 AttributeError的:「名單」對象有沒有屬性「編碼」 。結果是一個列表。 –
對不起,不。這是'stdout'中的每一行。你會希望'result = [line.encode('utf-8')。strip()for line]' – zondo