繁体   English   中英

使用 Python 检索 USB 项目列表

[英]Retrieve list of USB items using Python

如何使用python检索通过USB插入计算机的项目? 我在这里搜索并发现了一些旧的例子,它们似乎不再工作了,因为它们已经超过 5 年了。

我想要一个示例,我可以在其中列出下图中看到的名称,这是设备管理器的屏幕截图。

在此处输入图片说明

下面的代码列出了所有 USB 设备,但没有数据返回图像中看到的名称,这是为什么?

import win32com.client
import pprint

wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("Win32_USBHub"):
    # print usb.DeviceID
    # pprint.pprint (dir(usb))
    # pprint.pprint (vars(usb))
    # print usb.__dict__
    print ('Device ID:', usb.DeviceID)
    print ('Name:', usb.name)
    print ('System Name:', usb.SystemName)
    print ('Caption:', usb.Caption)
    print ('Caption:', usb.Caption)
    print ('ClassCode:', usb.ClassCode)
    print ('CreationClassName:', usb.CreationClassName)
    print ('CurrentConfigValue:', usb.CurrentConfigValue)
    print ('Description:', usb.Description)
    print ('PNPDeviceID:', usb.PNPDeviceID)
    print ('Status:', usb.Status)
    print ('\n')

我会安装pyserial

py -m pip install pyserial

并使用serial.tools.list_ports 您可以将其作为模块执行:

py -m serial.tools.list_ports`

或将模块及其相应的方法合并到您的代码库中:

import serial
from serial.tools import list_ports

if __name__ == "__main__":
    for port in list_ports.comports():
        if "USB" in port.hwid:
            print(f"Name: {port.name}")
            print(f"Description: {port.description}")
            print(f"Location: {port.location}")
            print(f"Product: {port.product}")
            print(f"Manufacturer: {port.manufacturer}")
            print(f"ID: {port.pid}")

更多信息可以在这里找到:

pyserial 文档 >> 工具

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM