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 错误和异常小结
Oct 09 Python
Python中使用logging模块代替print(logging简明指南)
Jul 09 Python
详解Python的Django框架中的通用视图
May 04 Python
Python中List.count()方法的使用教程
May 20 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python魔法方法功能与用法简介
Apr 04 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
python实现动态创建类的方法分析
Jun 25 Python
Django给表单添加honeypot验证增加安全性
May 06 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
图书管理程序(一)
2006/10/09 PHP
定义php常量的详解
2013/06/09 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
python字符串排序方法
2014/08/29 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python八皇后问题的解决方法
2018/09/27 Python
Python的历史与优缺点整理
2020/05/26 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
python os.rename实例用法详解
2020/12/06 Python
C语言笔试题回忆
2015/04/02 面试题
学前班教师的自我鉴定
2013/12/05 职场文书
客服主管岗位职责
2013/12/13 职场文书
单位门卫岗位职责
2013/12/20 职场文书
采购部经理岗位职责
2014/02/10 职场文书
讲党性心得体会
2014/09/03 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
推广普通话的宣传语
2015/07/13 职场文书
开业庆典致辞
2015/08/01 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书