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函数中的函数(闭包)用法实例
Mar 15 Python
详解Python多线程
Nov 14 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
Python: glob匹配文件的操作
Dec 11 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php在字符串中查找另一个字符串
2008/11/19 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
Django中的session用法详解
2020/03/09 Python
在python中修改.properties文件的操作
2020/04/08 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
护理专业本科生自荐信
2013/10/01 职场文书
生产部管理制度
2014/01/31 职场文书
经典英文广告词
2014/03/18 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
语文教师个人工作总结
2015/02/06 职场文书
黄河绝恋观后感
2015/06/08 职场文书
实用求职信模板范文
2019/05/13 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
Python装饰器详细介绍
2022/03/25 Python