簡體   English   中英

使用paramiko擺脫python3中的['\\ n']

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM