identificación del dispositivo usb

Estoy usando Python en Ubuntu 9.04, dice que tengo dos dispositivos USB conectados a una sola PC. ¿Cómo puedo identificar los dispositivos en el código de Python ….. por ejemplo, como

si el ID del puerto usb == A escribe datos en el dispositivo 1 si el ID del puerto usb == B escribe datos en el dispositivo 2

algunas ideas….

¿Has probado PyUsb ? Aquí un fragmento de lo que puedes hacer:

import usb busses = usb.busses() for bus in busses: devices = bus.devices for dev in devices: print "Device:", dev.filename print " idVendor: %d (0x%04x)" % (dev.idVendor, dev.idVendor) print " idProduct: %d (0x%04x)" % (dev.idProduct, dev.idProduct) 

Aquí un buen tutorial de pyUsb.

Para obtener más documentación, use el modo interactivo de Python con dir () y help ().

La respuesta de @ systempuntoout es buena, pero hoy he encontrado una forma más fácil de encontrar o iterar en todos los dispositivos: usb.core.find(find_all=True)

Siguiendo con tu ejemplo:

 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)) 

pero como sea … alguien buscará la respuesta en algún momento:

Estoy en un mac (osx 10.9). Instalé con éxito libusb con los puertos mac, pero recibí el mensaje “no hay backend disponible”. Es porque Python no puede encontrar los dylibs usb.

Debe agregar la ruta a su libusb a su $ DYLD_LIBRARY_PATH (por ejemplo, / opt / local / lib donde sea que Macport lo haya instalado).

Tan pronto como lo agregué, Pyusb funcionó bien.

Ok, también estaba buscando en Google por respuestas, aquí hay un fragmento que funciona:

 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 

tomado de https://mail.python.org/pipermail/python-win32/2006-December/005406.html