py获取前端的参数_Win7 64+Python3.7获取计算机硬盘信息初探

一、需求

由于最近负责电脑资产清查的工作,有100多台分散的电脑需要获得用户名、MAC地址、硬盘序列号、硬盘品牌

一般方法:

(1)查看系统用户名

(2) 获取MAC地址

4e2ad970348561b3788b178fd83e21ff.png
windos命令行使用ipconfig /all

(3)使用Hdtune软件查看硬盘序列号、硬盘品牌

cc6a250e4d1a9dc40ba2d31c64a9690e.png
HDtune5.0

(4)把上述信息手动输入一个Excel总表

以上操作 ,一轮下来大约5~10分钟

还是写代码吧,把每台电脑的上述信息都统一输出为一个子excel,最后再将所有xls文件放在一个文件夹中,利用VBA合并到一个表就可以了交差了

一年多没写过脚本,折腾了半天,基本完成

二、简单笔记

环境:Win7 64+Python3.7

Part 1 用到的库函数

(1)getpass库的getuser方法,获得当前用户名

(2)WMI库的Win32_DiskDrive类,调用SerialNumber和Caption方法获取物理硬盘的硬盘序列号、硬盘品牌

参见

Win32_DiskDrive class - Windows applications​docs.microsoft.com
1fd1510afadacd324aeeb942b5cd0db1.png

(3)通过WMI库Win32_NetworkAdapterConfiguration类获取MAC地址,调用interface.MACAddress方法

参见

Win32_NetworkAdapterConfiguration class - Windows applications​docs.microsoft.com
1fd1510afadacd324aeeb942b5cd0db1.png

(4)xlwt库,写入本地xls文件(很简单)

代码很简单

from wmi import WMI
from getpass import getuser
from xlwt import Workbook

c = WMI () 
listValue = []

#获取用户名
userName = getuser()
listValue.append( userName )
#获取MAC和IP地址
for interface in c.Win32_NetworkAdapterConfiguration ( IPEnabled= True ):
    listValue.append( interface.MACAddress )
#获取SerialNumber和Caption
for physical_disk in c.Win32_DiskDrive():	
	#SerialNumber : Number allocated by the manufacturer to identify the physical media.
	listValue.append( physical_disk.SerialNumber ) 
	#Caption : Short description of the object.
	listValue.append( physical_disk.Caption )

Part 2 py文件转换为exe文件

最后一步,利用pyinstaller将py文件打包成可执行文件。

先试了一下默认的打包命令

Pyinstaller diskinfo.py

生成了一堆文件

8b2abcce2b027b45b8ef5f1ad20976f6.png

这堆是啥我得研究一下。。。等等,我只是个写脚本的,其他的有空再研究,可执行文件在disk文件夹里,1.8M

0cfc7fda4b3165c9657551ea2dfd5acc.png

执行,费时2s左右,生成所需xls文件

1deefd1b62f3e781e112cf56218a0340.png

但是这一堆文件有点麻烦,每个电脑还得拷过来拷过去,查了下资料,发现可以做成单个执行文件,编译的时候时候加“-F”参数就行了

Pyinstaller -F diskinfo.py

现在就没有一堆奇怪的东西了,单个可执行文件一共9.3M

daa8abaa774dac06164aa75b9c6c7062.png

进阶操作参考

PyInstaller Manual​pyinstaller.readthedocs.io

Part 3

又试了几台都没什么问题,还未解决的问题应该还有不少:

(1) 现在都是64位系统,可以执行,32位系统没法用

(2) 单个文件打包后比较大,搜了一些解决方案,回去重新调试一下

(3) 手生,调试的过程中踩了很多基础坑,回去把《Python基础教程》复习一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值