gpt4 book ai didi

linux - 如何在 Linux 中获取所有插入设备的 USB ID

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:59 27 4
gpt4 key购买 nike

我正在尝试制作一个在后台运行的 Python 脚本,并检查所有插入设备的 USB ID 以查看它是否与已识别 ID 列表相匹配。这将在 Linux 环境中运行,最好使用 Python 2.x

我知道在 linux 中我可以在 shell 中运行 lsusb 或者通过 os.system() 运行它,这将给我这个输出:

Bus 003 Device 009: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 003 Device 007: ID 046d:082b Logitech, Inc. Webcam C170
Bus 003 Device 005: ID 1532:0043 Razer USA, Ltd
Bus 003 Device 010: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 008: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 006: ID 0424:2137 Standard Microsystems Corp.
Bus 003 Device 004: ID 0451:8044 Texas Instruments, Inc.

但是,如您所见,返回的信息比我需要的多,过滤这些信息会很困难,而且会花费更多时间。我需要的是这样的:

046d:c534
046d:082b
1532:0043
05e3:0608
05e3:0608
0424:2137
0451:8044

为了让这个脚本尽可能快,有什么方法可以让我对系统运行命令并只取回所有插入的 USB ID,或者使用 grep或者 Python 中类似的东西以某种方式过滤它?

提前致谢!

最佳答案

PyUSB具有您需要的功能以及更多。

可以使用以下代码(兼容Python2和Python3)枚举当前连接的所有设备:

import usb.core
for dev in usb.core.find(find_all=True):
print("%0.4X:%0.4X" % (dev.idVendor, dev.idProduct))

dev 对象将具有 VID、PID 和所有其他设备属性。示例输出:

046D:C016
413C:2107
8087:0024

他们还得到了一个 tutorial , 如果想与 USB 设备交互

关于linux - 如何在 Linux 中获取所有插入设备的 USB ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49053646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com