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实现合并两个数组的方法
May 16 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
Python File readlines() 使用方法
Mar 19 Python
Python实现购物车程序
Apr 16 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
python实现支付宝转账接口
May 07 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 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函数
2006/12/06 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
用jquery来定位
2007/02/20 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
JavaScript 全角转半角部分
2009/10/28 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
小学数学教学反思
2014/02/02 职场文书
我为自己代言广告词
2014/03/18 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
各种货币符号快捷输入
2022/02/17 杂记
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers