欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-14 12:08:44
本文以实例形式展示了python获取电脑硬件信息及状态的实现方法,是python程序设计中很有实用价值的技巧。分享给大家供大家参考之用。具体方法如下: 主要功能代码如下:...

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

主要功能代码如下:

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