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动态加载模块的3种方法
Nov 22 Python
Python中的高级数据结构详解
Mar 27 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
python批量复制图片到另一个文件夹
Sep 17 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
python如何实现单链表的反转
Feb 10 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
最新pycharm安装教程
Nov 18 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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
React实现todolist功能
2020/12/28 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
python基于event实现线程间通信控制
2020/01/13 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
企业演讲稿范文
2013/12/28 职场文书
空乘英文求职信
2014/04/13 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js