如何在python中检索usb信息

时间:2018-01-22 05:24:13

标签: python usb

如何获取Manufacture NameSize等USB信息? 我正在使用Ubuntu 16。 和Python 2.7.12

2 个答案:

答案 0 :(得分:0)

你有没有试过这样的事情:

busses = usb.busses()
for bus in busses:
   devices = bus.devices
   for dev in devices:
       print (repr(dev))
       print("manufacturer", dev.iManufacturer)
       print("Size", dev.iSize) 

注意:我认为只有在一次连接一个USB时它才会起作用

答案 1 :(得分:0)

使用此功能,您可以在pyusb中打印所有 USB字符串描述符制造商字符串描述符产品字符串描述符序列号字符串描述符(适用于所有USB设备,包括主机控制器)cf https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/usb.chm/usb5.htm

import usb

busses = usb.busses()
for bus in busses:
    devices = bus.devices
    for dev in devices:

        manufacturer = usb.util.get_string(dev.dev, dev.dev.iManufacturer)
        print str(manufacturer)
        product = usb.util.get_string(dev.dev, dev.dev.iProduct)
        print str(product)
        serialnumber = usb.util.get_string(dev.dev, dev.dev.iSerialNumber)
        print str(serialnumber)
        print('\n')

你必须以root身份/ sudo来调用它,否则会出现ValueError: The device has no langid错误

您可以使用其名称打印的其他USB属性:

import usb

busses = usb.busses()
for bus in busses:
    devices = bus.devices
    for dev in devices:

        print "  Device class:",dev.dev.bDeviceClass
        print "  Device sub class:",dev.dev.bDeviceSubClass
        print "  Device protocol:",dev.dev.bDeviceProtocol