本文以实例形式展示了python获取电脑硬件信息及状态的实现方法,是python程序设计中很有实用价值的技巧。分享给大家供大家参考之用。具体方法如下:
主要功能代码如下:
#!/usr/bin/env python# encoding: utf-8from optparse import optionparserimport osimport reimport jsondef 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: returnif __name__ ==__main__: main()
希望本文所述对大家python程序设计的学习有所帮助。