我正在尝试使用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'
有人可以帮助我理解为什么我会收到此错误吗? 谢谢
答案 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在评论中指出的那样)