Python获取电脑硬件信息及状态的实现方法

From: http://www.jb51.net/article/54470.htm

 

这篇文章主要介绍了Python获取电脑硬件信息及状态的实现方法,是一个很实用的技巧,需要的朋友可以参考下

本文以实例形式展示了Python获取电脑硬件信息及状态的实现方法,是Python程序设计中很有实用价值的技巧。分享给大家供大家参考之用。具体方法如下:

主要功能代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# encoding: utf-8
  
from optparse import OptionParser
import os
import re
import json
  
def main():
   try :
     parser = OptionParser(usage = "%prog [options]" )
     reg_result = re. compile ( '\[(.*)\]' )
     #add option
     parser.add_option( "-m" , "--machine" ,action = "store" , type = "string" ,dest = "machine" , help = "the machine to be check" )
     parser.add_option( "-f" , "--file" ,action = "store" , type = "string" ,dest = "file" , help = "the file with machine list" )
     parser.add_option( "-n" , "--noah_path" ,action = "store" , type = "string" ,dest = "noah" , help = "the bns path or group" )
     (options,args) = parser.parse_args()
  
     result = ""
     if options.machine:
       options.machine = options.machine.replace( ".baidu.com" ,"")
       result = os.popen( "meta-query entity host " + options.machine + " -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -j" ).read()
     elif options. file :
       result = os.popen( "meta-query entity host -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -F " + options. file + " -j" ).read()
     elif options.noah:
       result = os.popen( "get_instance_by_service " + options.noah + " |meta-query entity host -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -F -j" ).read()
     else :
       return
  
     result = json.loads(result)
     print "%-*s%-*s%-*s%-*s%-*s%-*s" % ( 40 , "Name" , 10 , "CPU" , 10 , "memery" , 10 , "disk" , 10 , "IDC" , 10 , "status" )
     for item in result:
       if item[ 'Values' ][ 'cpuFrequency' ]! = "null" :
         item[ 'Values' ][ 'cpuFrequency' ] = str ( float (item[ 'Values' ][ 'cpuFrequency' ]) / 1000.0 )[ 0 : 3 ]
       else :
         item[ 'Values' ][ 'cpuFrequency' ] = "0"
       item[ 'Values' ][ 'diskTotal' ] = str ( float (item[ 'Values' ][ 'diskTotal' ]) / 1000000000.0 )[ 0 : 5 ]
       item[ 'Values' ][ 'memTotal' ] = str ( float (item[ 'Values' ][ 'memTotal' ]) / 1024 / 1000.0 )[ 0 : 5 ]
        
       print "%-*s%-*s%-*s%-*s%-*s%-*s" % ( 40 ,item[ 'Name' ], 10 ,item[ 'Values' ][ 'cpuFrequency' ] + " x" + item[ 'Values' ][ 'cpuPhysicalCores' ], 10 ,item[ 'Values' ][ 'memTotal' ] + "G" , 10 ,item[ 'Values' ][ 'diskTotal' ] + "T" , 10 ,item[ 'Values' ][ 'netIdc' ], 10 ,item[ 'Values' ][ 'status' ])
   except Exception,e:
     return
  
if __name__ = = "__main__" :
   main()

希望本文所述对大家Python程序设计的学习有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值