谁说我们用python开辟检测U盘插入和拔出, 必然要挪用pywin32接口挪用API才能做到的?
事实上, 绝年夜部门人城市用windowsAPI的WndProc回调函数来取得WM_DEVICECHANGE动静, 然后判定U盘的转变(这个过程, windows会标的目的所有窗口广播WM_DEVICECHANGE动静) 。
下面小编就教大师一种另类的方式:用Python + psutil实现检测U盘插入和拔出功能 。
1教你怎么用python挪用windows的API
1手把手教你怎么安装Python psutil包
1教你怎么安装pywin32(Python挪用win api必看)
文章插图
需要这些哦
python3
psutil
方式/
1起头之前, 请确保小伙伴具备以下常识:
Python的根本常识(包罗切片、引用全局变量、轮回等等根本常识)
若有不懂, 或者是需要这份代码 。 请在经验底部给小编投票或有得留言, 小编看到会第一时候答复 。
别的经验引用是一些附加常识, 它可以帮忙你快速开辟出如许的法式 。
而且确保电脑中装有psutil包 。
查看的方式如下:
打开cmd号令提醒符:pip list | find "psutil"
文章插图
2思绪阐发:
我们经由过程psutil包内的disk_partitions()方式获得驱动器数(或者说是分区数, windows上完全可以如许理解)
disk_partitions()会返回一个对象列表(列表内的有M个sdiskpart对象)
它们的格局如下:
[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'),.....]
我们可以看到如许一个列表, 里面有多个(磁盘驱动器数)对象 。
sdiskpart对象有以部属性:
device:驱动器(可以理解为分区)
mountpoint:挂载点 (也可以理解为分区, Windows上都是一样的)
【玩转psutil 教你用Python检测U盘插入和拔出】fstype:文件类型
opts:挂载选项(若是小伙伴学过linux的mount, 对这个必定不目生, 可以理解为它的权限和信息)
详情可以参考下经验引用(玩转psutil:教你怎么用Python获得分区个数)
文章插图
3我们获得了驱动器个数之后, 我们必需要知道驱动器是什么类型的, 以此来区分是我们的硬盘仍是我们的U盘, 或者是收集映射仍是光盘之类的 。
我们可以经由过程opts属性来阐发, 我们上面也说过, opts是一个驱动器在挂载时被设定的参数, 例如opts='rw,fixed'
rw参数意味着可读可写, 而fixed申明它是一个当地驱动器(查查这个单词就知道了)
再来看看这个:opts='rw,removable'
这个removable是意思是:可移动的, 可拆的
这就可以让我们区分硬盘和U盘
那么, 我们有了驱动器个数, 而且知道怎么区分驱动类型之后, 我们就可以经由过程一个轮回, 不竭的获取驱动器个数, 若是发现驱动器个数少于之前, 即是拔出, 驱动器多于之前即是插入 。
对不合错误??
OK 。 起头写我们的代码 。
import psutil
import time,sys
from win32gui import MessageBox as box
#/*
推荐阅读
- 如何使用Excel记账,教你使用excel财务记账系统
- 教你使用3D打印软件---123D design
- 安装wacom手绘板驱动的教程
- 很简单 新手入门转笔教程图解
- 老鼠怎么画的啊?如果画老鼠? 老鼠画法教程
- 教你如何画圆明园的简笔画
- 小米盒子上安装爱奇艺TV版教程
- 小花牛简笔画教程
- 怎么画桂花树?
- 孩子不听话家长该怎么教育?