如何在Python上检测新的USB设备是否已连接

Har*_*320 6 python usb pyudev

我想做一些在后台运行的东西,只有在计算机检测到新设备连接后,其余代码才会运行,有什么优雅的方法来做这样的事情吗?

ral*_*htp 8

这是操作系统相关的

在linux中你可以使用pyudev这个:

几乎完整的 libudev 功能都已公开。你可以:

  • 枚举设备,按特定条件过滤(pyudev.Context)
  • 查询设备信息、属性和属性,
  • 与后台线程同步和异步监控设备,或者在 Qt (pyudev.pyqt4、pyudev.pyside)、glib (pyudev.glib) 和 wxPython (pyudev.wx) 的事件循环内监控设备。

https://pyudev.readthedocs.io/en/latest/

源代码在http://pyudev.readthedocs.io/en/v0.14/api/monitor.html,查看receive_device()函数

在Windows中,您可以使用WMI(Windows Management Instrumentation),如https://blogs.msdn.microsoft.com/powershell/2007/02/24/displaying-usb-devices-using-wmi/(Python读取设备管理器信息)或 Python 绑定,如https://pypi.python.org/pypi/infi.devicemanager