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的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
Python 多线程实例详解
Mar 25 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
python 重命名轴索引的方法
Nov 10 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
六行python代码的爱心曲线详解
May 17 Python
将python文件打包成EXE应用程序的方法
May 22 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
selenium如何定位span元素的实现
Jan 13 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获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
Python实现获取网站PR及百度权重
2015/01/21 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
python 编码规范整理
2018/05/05 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python爬取youtube视频的示例代码
2021/03/03 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
活动总结报告范文
2014/05/04 职场文书
文明市民先进事迹
2014/05/15 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
SQL Server中使用表变量和临时表
2022/05/20 SQL Server