现在的位置: 首页 > 综合 > 正文

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

2017年12月16日 ⁄ 综合 ⁄ 共 2700字 ⁄ 字号 评论关闭

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程序设计的学习有所帮助。

抱歉!评论已关闭.