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对IP进行转换的一些操作技巧小结
Nov 09 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
回调函数的意义以及python实现实例
Jun 20 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Python实现12306火车票抢票系统
Jul 04 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
如何解决安装python3.6.1失败
Jul 01 Python
python如何使用腾讯云发送短信
Sep 17 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP 实现explort() 功能的详解
2013/06/20 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
jquery动态添加option示例
2013/12/30 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
工程采购员岗位职责
2014/03/09 职场文书
地球一小时倡议书
2014/04/15 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
故宫英文导游词
2015/01/31 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
药品开票员岗位职责
2015/04/15 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书