我正试图用Pyusb生成一个产品/供应商ID列表,但遇到了问题。我在网上找到了orangecat的一个建议。
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'
有人能帮我理解为什么我会出现这个错误吗?感谢
您已经接近目标,但您需要遍历作为生成器的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)
保存此脚本
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在评论中所指出的)