PyUSB:为啥 bus.dirname 和 dev.filename 是空字符串?
Posted
技术标签:
【中文标题】PyUSB:为啥 bus.dirname 和 dev.filename 是空字符串?【英文标题】:PyUSB: Why are bus.dirname and dev.filename empty string?PyUSB:为什么 bus.dirname 和 dev.filename 是空字符串? 【发布时间】:2016-11-28 23:38:19 【问题描述】:我对使用 PyUSB 很陌生。我有一些 USB 设备连接到我的机器,并试图获取它们的一些属性。根据我从其他使用 PyUSB 的示例中学到的知识,我在 Linux 中制作了一个简短的程序。这是程序的一个片段:
busses = usb.busses()
for bus in busses:
devices = bus.devices
for dev in devices:
print dev.filename
print bus.dirname
print dev.idProduct
当我检查输出时,所有设备的 dev.filename 和 bus.dirname 都是空字符串。 dev.idProduct 是正确的。
有人可以帮忙解决这些问题吗? (1) 什么是 dev.filename? (2)什么是bus.dirname? (3) 这两个属性都可以为空吗?
谢谢。
【问题讨论】:
我想你应该在PyUSB
github 页面上问这个问题。快速浏览它的代码会发现device.filename
被初始化为一个空字符串,并且从未分配给其他任何东西。 bus.dirname
(github.com/walac/pyusb/blob/…) 也是如此。
尝试访问/dev
?你是root
吗?
【参考方案1】:
设备号在devnum中:
busses = usb.busses()
for bus in busses:
devices = bus.devices
for dev in devices:
print dev.devnum #filename is empty!!
print bus.dirname
print dev.idProduct
【讨论】:
解释有点短……你能详细说明一下吗? 因此,如果您查看 legacy.py 中 pyusb 的代码,设备类将填充所有字段。文件名留空,但 devnum 填充了设备地址:self.devnum = dev.address以上是关于PyUSB:为啥 bus.dirname 和 dev.filename 是空字符串?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Python pyusb usb.core 访问由于权限而被拒绝,为啥 rules.d 不能修复它?