Python擷取電腦硬體資訊及狀態的實現方法_python

來源:互聯網
上載者:User

本文以執行個體形式展示了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程式設計的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.