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脚本生成Android SALT扰码的方法
Sep 18 Python
Python写的贪吃蛇游戏例子
Jun 16 Python
python实现杨辉三角思路
Jul 14 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
关于Python 的简单栅格图像边界提取方法
Jul 05 Python
微信公众号token验证失败解决方案
Jul 22 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
Python如何输出警告信息
Jul 30 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
python计算一个序列的平均值的方法
2015/07/11 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
广告业务员岗位职责
2014/02/06 职场文书
公司晚会主持词
2014/03/22 职场文书
企业总经理任命书
2014/06/05 职场文书
学校创先争优活动总结
2014/08/28 职场文书
校运动会广播稿300字
2014/10/07 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
彻底理解golang中什么是nil
2021/04/29 Golang
golang DNS服务器的简单实现操作
2021/04/30 Golang
MySQL中order by的使用详情
2021/11/17 MySQL