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 实现归并排序算法
Jun 05 Python
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
对numpy中array和asarray的区别详解
Apr 17 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python csv模块使用方法代码实例
Aug 29 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
python def 定义函数,调用函数方式
Jun 02 Python
python超详细实现完整学生成绩管理系统
Mar 17 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下删除一篇文章生成的多个静态页面
2010/08/08 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python编码类型转换方法详解
2016/07/01 Python
Python中list初始化方法示例
2016/09/18 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
python制作朋友圈九宫格图片
2019/11/03 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
公司行政专员岗位职责
2014/08/24 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
Python实现Hash算法
2022/03/18 Python