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中的Descriptor描述符类
Jun 14 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
Python中pillow知识点学习
Apr 30 Python
python读取word文档,插入mysql数据库的示例代码
Nov 07 Python
Python向excel中写入数据的方法
May 05 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Python实现快速大文件比较代码解析
Sep 04 Python
Django集成富文本编辑器summernote的实现步骤
May 31 Python
python的变量和简单数字类型详解
Sep 15 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抽象工厂模式(Elgg)
2010/03/21 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
php ci框架验证码实例分析
2013/06/26 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
php和asp语法上的区别总结
2019/05/12 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python的re正则表达式实例代码
2018/01/24 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Windows下python3.6.4安装教程
2018/07/31 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
记账会计岗位职责
2014/06/16 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
编写python程序的90条建议
2021/04/14 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技