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远程桌面协议RDPY安装使用介绍
Apr 15 Python
python实现中文分词FMM算法实例
Jul 10 Python
Tensorflow简单验证码识别应用
May 25 Python
Python退火算法在高次方程的应用
Jul 26 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
基于Python fminunc 的替代方法
Feb 29 Python
python实现四人制扑克牌游戏
Apr 22 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网站的几个实用要点
2014/12/30 PHP
php计算函数执行时间的方法
2015/03/20 PHP
php微信公众号开发之简答题
2018/10/20 PHP
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
Django 再谈一谈json序列化
2020/03/16 Python
python实现用户名密码校验
2020/03/18 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
学历公证委托书
2014/04/09 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
昆虫记读书笔记
2015/06/26 职场文书
退伍军人感言
2015/08/01 职场文书
小学思想品德教学反思
2016/02/24 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers