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脚本实现查找webshell的方法
Jul 31 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
快速入门python学习笔记
Dec 06 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python实现log日志的示例代码
Apr 28 Python
python 以16进制打印输出的方法
Jul 09 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
Python socket处理client连接过程解析
Mar 18 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 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
global.php
2006/12/09 PHP
php下MYSQL limit的优化
2008/01/10 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
原生js实现轮播图
2017/02/27 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
python字典序问题实例
2014/09/26 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
爱国卫生月实施方案
2014/02/21 职场文书
北体毕业生求职信
2014/02/28 职场文书
验房委托书
2014/08/30 职场文书
放飞理想演讲稿
2014/09/09 职场文书
投资合作意向书范本
2015/05/08 职场文书
Tomcat配置访问日志和线程数
2022/05/06 Servers