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编程中一些重用与缩减的建议
Apr 14 Python
介绍Python的@property装饰器的用法
Apr 28 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
python中正则表达式的使用方法
Feb 25 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
wxPython修改文本框颜色过程解析
Feb 14 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
解析smarty模板中类似for的功能实现
2013/06/18 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
jQuery 表单序列化实例代码
2017/06/11 jQuery
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
EL表达式截取字符串的函数说明
2017/09/22 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
关于赌博的检讨书
2014/01/08 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python