我刚刚开始用Python3编写一个监控工具,我想知道是否可以通过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']
,只获取清晰的Numer值?
如何才能获得在PuTTy中看到的结果?
发布于 2016-08-24 20:10:19
您应该遍历stdout.readlines()
返回的列表中的每个元素并对其执行strip
操作,而不是print(stdout.readlines())
,也可以将其转换为float
(这取决于您稍后计划如何处理这些数据)。
您可以对此使用列表理解:
print([float(line.strip()) for line in stdout.readlines()])
请注意,strip
将从字符串的开头和结尾删除空格和换行符。如果只想删除尾随的空格/换行符,那么可以使用rstrip
,但请注意,到float
的转换可能会失败。
https://stackoverflow.com/questions/39122910
复制相似问题