[英]Get rid of ['\n'] in python3 with paramiko
我剛剛開始用Python 3編寫監視工具,我想知道是否可以通過ssh獲得“清晰的”數字輸出。 我已經寫了這個腳本:
import os
import paramiko
command = 'w|grep \"load average\"|grep -v grep|awk {\'print ($10+$11+$12)/3*100\'};'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy())
ssh.connect('10.123.222.233', username='xxx', password='xxx')
stdin, stdout, stderr = ssh.exec_command(command)
print (stdout.readlines())
ssh.close()
它工作正常,除了輸出是:
['22.3333\n']
我怎樣才能擺脫['
和\\n']
而只得到明確的數字值?
在PuTTy中如何看到結果?
.readlines()
返回單獨行的列表 。 在您的情況下,只有一行,您可以通過索引列表來提取它,然后在末尾去除空白:
firstline = stdout.readlines()[0].rstrip()
但是,這仍然是字符串。 如果需要數字 ,則必須將字符串轉換為float()
。 由於您的命令行僅會返回一條線,你可能也只是使用.read()
和轉換是直線上升(無需條,如float()
是寬容的拖尾和先行空白的):
result = float(stdout.read())
而不是print(stdout.readlines())
您應該遍歷stdout.readlines()
返回的列表中的每個元素並將其strip
,並可能將其也轉換為float
(取決於您打算對此數據進行什么處理)后來)。
您可以為此使用列表理解:
print([float(line.strip()) for line in stdout.readlines()])
注意, strip
將從字符串的開頭和結尾都刪除空格和換行符。 如果只想刪除結尾的空格/ rstrip
,則可以使用rstrip
,但請注意,轉換為float
可能會失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.