Python實(shí)現(xiàn)讀取機(jī)器硬件信息的方法示例
本文實(shí)例講述了Python實(shí)現(xiàn)讀取機(jī)器硬件信息的方法。分享給大家供大家參考,具體如下:
本人最近新學(xué)python ,用到關(guān)于機(jī)器的相關(guān)信息,經(jīng)過(guò)一番研究,從網(wǎng)上查找資料,經(jīng)過(guò)測(cè)試,總結(jié)了一下相關(guān)的方法.
# -*- coding: UTF8 -*- import os import win32api import datetime import platform import getpass import socket import uuid import _winreg import re
1、讀取注冊(cè)表獲取操作系統(tǒng)版本名稱
def GetOsName(): '''操作系統(tǒng)名稱''' 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、讀取注冊(cè)表獲取操作系統(tǒng)當(dāng)前版本號(hào)
def GetOsVersion(): '''操作系統(tǒng)版本''' 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、讀取注冊(cè)表獲取操作系統(tǒng)的型號(hào)
def GetOsModel(): '''操作系統(tǒng)型號(hào)''' 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、根據(jù)文件的全路徑獲取文件的版本號(hào)
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、通過(guò)platform模塊讀取機(jī)器的其它信息
def get_architecture(): '''獲取操作系統(tǒng)的位數(shù)''' return platform.architecture() def get_machine(): '''計(jì)算機(jī)類型''' return platform.machine() def get_node(): '''計(jì)算機(jī)的網(wǎng)絡(luò)名稱''' return platform.node() def get_processor(): '''計(jì)算機(jī)處理器信息''' return platform.processor() def get_system(): '''獲取操作系統(tǒng)類型''' return platform.system() def get_TotalInfo(): '''匯總信息''' return platform.uname() def get_localDataPath(): '''當(dāng)前用戶路徑''' return os.path.expanduser('~') def get_UserName(): '''當(dāng)前用戶名''' return getpass.getuser() def get_ComputerName1(): '''獲取機(jī)器名稱''' return platform.node()() def get_ComputerName(): '''獲取機(jī)器名稱''' return socket.gethostname() def get_AddressIp(): '''獲取本機(jī)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('操作系統(tǒng)的位數(shù) : [{}]'.format(get_architecture())) print('計(jì)算機(jī)類型 : [{}]'.format(get_machine())) print('計(jì)算機(jī)的網(wǎng)絡(luò)名稱 : [{}]'.format(get_node())) print('計(jì)算機(jī)處理器信息 : [{}]'.format(get_processor())) print('操作系統(tǒng)類型 : [{}]'.format(get_system())) print('匯總信息 : [{}]'.format(get_TotalInfo())) print('當(dāng)前用戶路徑: [{}]'.format(get_localDataPath())) print('當(dāng)前用戶名: [{}]'.format(get_UserName())) print('機(jī)器名稱: [{}]'.format(get_ComputerName())) print('機(jī)器IP: [{}]'.format(get_AddressIp())) print('MAC地址: [{}]'.format(get_Mac()))
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python中zip()函數(shù)遍歷多個(gè)列表方法
在本篇文章里小編給大家整理的是一篇關(guān)于python中zip()函數(shù)遍歷多個(gè)列表方法,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。2021-02-02解決遇到PermissionError:[Errno 13] Permission den
遇到"PermissionError:[Errno 13] Permission denied"通常是權(quán)限不足導(dǎo)致,解決此問(wèn)題的方法包括檢查并更改文件權(quán)限,使用管理員權(quán)限運(yùn)行命令,或接觸文件所有者,這些步驟有助于確保用戶具有執(zhí)行操作所需的權(quán)限,有時(shí),文件或目錄可能被鎖定2024-09-09一文帶你精通Python中*args和**kwargs的應(yīng)用技巧
如果能在Python中創(chuàng)建適應(yīng)不同場(chǎng)景的函數(shù),而無(wú)需每次都重寫它們,會(huì)使得操作簡(jiǎn)潔方便,這就是*args和**kwargs的魔力所在,下面我們就來(lái)看看它們的具體一些應(yīng)用技巧吧2024-03-03Python基礎(chǔ)之變量基本用法與進(jìn)階詳解
這篇文章主要介紹了Python基礎(chǔ)之變量基本用法與進(jìn)階,結(jié)合實(shí)例形式詳細(xì)分析了Python變量引用、可變和不可變類型、局部變量和全局變量等相關(guān)原理與使用技巧,需要的朋友可以參考下2020-01-01Python OpenCV簡(jiǎn)單的繪圖函數(shù)使用教程
本文主要為大家介紹了OpenCV中一些簡(jiǎn)單的繪圖函數(shù)的使用教程,文中的示例代碼講解詳細(xì),對(duì)我們了解OpenCV有一定的幫助,感興趣的可以學(xué)習(xí)一下2022-01-01Django實(shí)現(xiàn)帶進(jìn)度條的倒計(jì)時(shí)功能詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Django實(shí)現(xiàn)簡(jiǎn)單的帶進(jìn)度條的倒計(jì)時(shí)功能,可以在頁(yè)面加載后自動(dòng)開始計(jì)時(shí),下次計(jì)時(shí)需要手動(dòng)刷新頁(yè)面,需要的可以參考一下2023-04-04Python?Pipeline處理數(shù)據(jù)工作原理探究
如果你是一個(gè)Python開發(fā)者,你可能聽過(guò)"pipeline"這個(gè)術(shù)語(yǔ),但?pipeline?到底是什么,它又有什么用呢?在這篇文章中,我們將探討?Python?中的?pipeline?概念,它們是如何工作的,以及它們?nèi)绾螏椭憔帉懜逦⒏咝У拇a2024-01-01