尝试使用PyUSB生成产品/供应商ID列表

时间:2014-09-15 17:06:06

标签: python pyusb

我正在尝试使用Pyusb生成产品/供应商ID列表,但我遇到了麻烦。我从orangecoat网上找到了一个建议。

import sys
import usb.core
import usb.util

dev = usb.core.find(find_all=True)

if dev is None:
   raise ValueError('Device not found')

cfg = dev.get_active_configuration()

Python虽然提供了以下错误:

Traceback (most recent call last):
  File "C:/Python27/usbfinddevices.py", line 10, in <module>
    cfg = dev.get_active_configuration()
AttributeError: 'generator' object has no attribute 'get_active_configuration'

有人可以帮助我理解为什么我会收到此错误吗? 谢谢

2 个答案:

答案 0 :(得分:0)

你几乎就在那里,但你需要遍历作为生成器的dev对象。

dev = usb.core.find(find_all=True)
for d in dev:
    print usb.util.get_string(d,128,d.iManufacturer)
    print usb.util.get_string(d,128,d.iProduct)
    print (d.idProduct,d.idVendor)

答案 1 :(得分:0)

保存此脚本

<强> test.py

import usb.core
import usb.util

dev = usb.core.find(find_all=True)

# get next item from the generator
d = dev.next() 
print d.get_active_configuration()

然后,运行此

sudo python test.py

在使用Python 3的Windows上,您需要将行d = dev.next()更改为d = next(dev)(正如@gabin在评论中指出的那样)