使用 this answer ,我们能够查询到所有在精确时刻连接的 USB 设备。
我有一个在 Linux(Debian 或 RaspBian)上运行的 Python 程序来执行特定任务,但我还希望该程序在连接新 USB 设备时进行监听 ,并在发生这种情况时触发特定操作。
我正在考虑做一个新的 thread
:
while True:
list_USB_devices() # using https://stackoverflow.com/a/8265634/1422096
see_if_new_devices_in_this_list()
time.sleep(2) # wait 2 seconds
但我觉得这个解决方案不是很优雅。
如果连接了新的 USB 设备,在 Python 程序的后台检测有什么更干净的解决方案?
我的程序的应用示例:监听是否连接了新的 USB-MIDI 键盘/设备,如果是,则使用 rtmidi-python
附加它 “即插即用!”
最佳答案
查看 gio 库(glib 的一部分)。您可以在创 build 备时附加 watch 和连接回调。这样你根本不需要轮询。在设备目录上设置监视,查找文件创建。过滤掉不感兴趣的文件。
您可能还可以查看“udev”系统本身,并编写规则以在新 USB 设备出现时执行某些操作。
关于python - 检测何时连接了新的 USB 设备(即插即用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959289/