Python usb设备识别

Python usb设备识别,python,controls,port,device,Python,Controls,Port,Device,我在ubuntu 9.04上使用python 假设我有两个usb设备连接到一台PC。我如何在python代码中识别这些设备…例如 如果usb端口id==A 将数据写入设备1 如果usb端口id==B 将数据写入设备2 有什么想法……你试过了吗? 安装时使用: pip安装pyusb 下面是您可以执行的操作的一个片段: 导入usb 总线=usb.busses() 对于总线中的总线: 设备=总线设备 对于设备中的开发人员: 打印(“设备:”,dev.filename) 打印(“idVendor:%d

我在ubuntu 9.04上使用python 假设我有两个usb设备连接到一台PC。我如何在python代码中识别这些设备…例如

如果usb端口id==A 将数据写入设备1 如果usb端口id==B 将数据写入设备2

有什么想法……

你试过了吗? 安装时使用:

pip安装pyusb
下面是您可以执行的操作的一个片段:

导入usb
总线=usb.busses()
对于总线中的总线:
设备=总线设备
对于设备中的开发人员:
打印(“设备:”,dev.filename)
打印(“idVendor:%d(0x%04x)”%(dev.idVendor,dev.idVendor))
打印(“idProduct:%d(0x%04x)”%(dev.idProduct,dev.idProduct))
pyUsb的好教程


有关更多文档,请将Python交互模式与dir()和help()配合使用。

@systempuntoout的答案很好,但今天我找到了一种更简单的方法来查找或迭代所有设备:
usb.core.find(find_all=True)

以下是您的示例:

import usb
for dev in usb.core.find(find_all=True):
    print "Device:", dev.filename
    print "  idVendor: %d (%s)" % (dev.idVendor, hex(dev.idVendor))
    print "  idProduct: %d (%s)" % (dev.idProduct, hex(dev.idProduct))

但不管怎样。。有人会在某个时候寻找答案:

我在mac(osx 10.9)上。。我成功地安装了带有mac端口的libusb,但收到“没有后端可用”消息。这是因为python找不到usb数据库

您必须将libusb的路径添加到$DYLD_LIBRARY_路径中(例如/opt/local/lib,无论macport安装在哪里)


我一添加pyusb,它就工作得很好。

好的,我也在谷歌上搜索答案,下面是一个有效的代码片段:

def locate_usb():
import win32file
drive_list = []
drivebits=win32file.GetLogicalDrives()
for d in range(1,26):
    mask=1 << d
    if drivebits & mask:
        # here if the drive is at least there
        drname='%c:\\' % chr(ord('A')+d)
        t=win32file.GetDriveType(drname)
        if t == win32file.DRIVE_REMOVABLE:
            drive_list.append(drname)
return drive_list
def locate_usb():
导入Win32文件
驱动器列表=[]
drivebits=win32file.GetLogicalDrives()
对于范围(1,26)内的d:

mask=1我在终端窗口中使用了上面的代码…它返回一个错误“object has no attribute devices”您能让我参考一些可能有帮助的教程吗…或者详细说明这个模块usbCode正在Osx上为我工作,带有Python 2.6和pyUsb端口。你的platform\Python版本是什么?我现在已经安装了pyusb,并运行示例usbenum.py(你提到的代码似乎非常相似)…我的电脑上有3个usb端口,但结果显示dev.filename有6个输出..它们是001或005等数字。。。。当我插入设备时,它们发生了变化…(我不擅长usb标准)…我只想识别每个设备/端口。。。示例中的哪个参数对我有帮助……您可以在知道其idVendor/idProduct的情况下与设备交谈,而不管它连接了哪个端口。我刚刚遇到这个问题,并通过自制成功安装了libusb:
brew安装libusb