Python实现读取机器硬件信息的方法示例


Posted in Python onJune 09, 2018

本文实例讲述了Python实现读取机器硬件信息的方法。分享给大家供大家参考,具体如下:

本人最近新学python ,用到关于机器的相关信息,经过一番研究,从网上查找资料,经过测试,总结了一下相关的方法.

# -*- coding: UTF8 -*-
import os
import win32api
import datetime
import platform
import getpass
import socket
import uuid
import _winreg
import re

1、读取注册表获取操作系统版本名称

def GetOsName():
    '''操作系统名称'''
    keyPath = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    each_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, keyPath, 0, _winreg.KEY_READ)
    OsName,REG_SZ = _winreg.QueryValueEx(each_key, "ProductName")
    return OsName

2、读取注册表获取操作系统当前版本号

def GetOsVersion():
    '''操作系统版本'''
    keyPath = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    each_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, keyPath, 0, _winreg.KEY_READ)
    OsVersion,REG_SZ = _winreg.QueryValueEx(each_key, "CurrentVersion")
    return OsVersion

3、读取注册表获取操作系统的型号

def GetOsModel():
    '''操作系统型号'''
    keyPath = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    each_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, keyPath, 0, _winreg.KEY_READ)
    OsModel,REG_SZ = _winreg.QueryValueEx(each_key, "EditionID")
    return OsModel

4、根据文件的全路径获取文件的版本号

def GetFileVersion(filePath):
    info = win32api.GetFileVersionInfo(filePath, os.sep)
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    version = '%d.%d.%d.%04d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls))
    return version

5、通过platform模块读取机器的其它信息

def get_architecture():
    '''获取操作系统的位数'''
    return platform.architecture()
  def get_machine():
    '''计算机类型'''
    return platform.machine()
  def get_node():
    '''计算机的网络名称'''
    return platform.node()
  def get_processor():
    '''计算机处理器信息'''
    return platform.processor()
  def get_system():
    '''获取操作系统类型'''
    return platform.system()
  def get_TotalInfo():
    '''汇总信息'''
    return platform.uname()
  def get_localDataPath():
    '''当前用户路径'''
    return os.path.expanduser('~')
  def get_UserName():
    '''当前用户名'''
    return getpass.getuser()
  def get_ComputerName1():
    '''获取机器名称'''
    return platform.node()()
  def get_ComputerName():
    '''获取机器名称'''
    return socket.gethostname()
  def get_AddressIp():
    '''获取本机IP'''
    return socket.gethostbyname(get_ComputerName())
  def get_Mac():
    '''获取MAC地址'''
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:]
    return ':'.join(mac[e:e+2].upper() for e in xrange(0,11,2))
  def show_os_all_info():
    '''打印os的全部信息'''
    print('操作系统的位数 : [{}]'.format(get_architecture()))
    print('计算机类型 : [{}]'.format(get_machine()))
    print('计算机的网络名称 : [{}]'.format(get_node()))
    print('计算机处理器信息 : [{}]'.format(get_processor()))
    print('操作系统类型 : [{}]'.format(get_system()))
    print('汇总信息 : [{}]'.format(get_TotalInfo()))
    print('当前用户路径: [{}]'.format(get_localDataPath()))
    print('当前用户名: [{}]'.format(get_UserName()))
    print('机器名称: [{}]'.format(get_ComputerName()))
    print('机器IP: [{}]'.format(get_AddressIp()))
    print('MAC地址: [{}]'.format(get_Mac()))

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python绘制图表大全总结
Feb 11 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
python 函数内部修改外部变量的方法
Dec 18 Python
Python中print和return的作用及区别解析
May 05 Python
django 单表操作实例详解
Jul 30 Python
python创建子类的方法分析
Nov 28 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
深入了解Python enumerate和zip
Jul 16 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 #Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 #Python
python 用lambda函数替换for循环的方法
Jun 09 #Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 #Python
python pandas 如何替换某列的一个值
Jun 09 #Python
pandas 对series和dataframe进行排序的实例
Jun 09 #Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 #Python
You might like
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
js切换div css注意的细节
2012/12/10 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
pandas.cut具体使用总结
2019/06/24 Python
python使用配置文件过程详解
2019/12/28 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python中_del_还原数据的方法
2020/12/09 Python
linux面试题参考答案(8)
2016/04/19 面试题
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
社区先进事迹材料
2014/05/19 职场文书
信访维稳承诺书
2015/05/04 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis