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


Posted in Python onAugust 29, 2014

本文以实例形式展示了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程序设计的学习有所帮助。

Python 相关文章推荐
Python计算程序运行时间的方法
Dec 13 Python
Python操作MongoDB详解及实例
May 18 Python
python正则表达式re之compile函数解析
Oct 25 Python
python+opencv实现动态物体追踪
Jan 09 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
如何基于python生成list的所有的子集
Nov 11 Python
python编写微信公众号首图思路详解
Dec 13 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
django项目中新增app的2种实现方法
Apr 01 Python
python 常见的反爬虫策略
Sep 27 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
python pillow库的基础使用教程
Jan 13 Python
python基础教程之基本数据类型和变量声明介绍
Aug 29 #Python
python基础教程之Hello World!
Aug 29 #Python
python中的多线程实例教程
Aug 27 #Python
闭包在python中的应用之translate和maketrans用法详解
Aug 27 #Python
web.py获取上传文件名的正确方法
Aug 26 #Python
Python version 2.7 required, which was not found in the registry
Aug 26 #Python
web.py中调用文件夹内模板的方法
Aug 26 #Python
You might like
基于php iconv函数的使用详解
2013/06/09 PHP
php生成excel列序号代码实例
2013/12/24 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php数组查找函数总结
2014/11/18 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php中如何执行linux命令详解
2018/11/06 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python面向对象特殊成员
2017/04/24 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
护士实习自荐信
2015/03/06 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
Redis集群的关闭与重启操作
2021/07/07 Redis
Python使用DFA算法过滤内容敏感词
2022/04/22 Python