[Python-es] Obtener device para montar disco USB

Oswaldo Hernández listas en soft-com.es
Mie Feb 23 12:55:20 CET 2011


El 22/02/2011 22:09, Oswaldo Hernández escribió:
> Hola,

> El problema es que el device que hoy es /dev/sdd mañana puede ser otro
> debido a que se ha agregado un disco al sistema, o por cualquier otro
> motivo, por lo que me gustaría 'autodetectar' que dispositivo se ha
> asignado al disco usb.
>
> ¿Conocéis alguna forma de hacerlo?
>

Gracias Gerardo, Ricardo y Javi, os contesto aqui.

 > Hay algo similar para usb: /proc/bus/usb/devices. No sé si te sirva.
 > El problema fundamental con esto es que es dependiente del sistema
 > operativo, por lo que no podrá usarse en Windows ni en otro sistema que
 > no sea POSIX. Sería deseable tener una solución dentro de Python.

Para windows lo tengo prácticamente resulto utilizando win32api, me 
falta linux.


 > Puedes usar en su lugar el UUID (Universally Unique ID) del sistema de
 > ficheros, en lugar de el nombre del dispositivo. Es la manera
 > preferida desde hace tiempo incluso en /etc/fstab

Sobre el montaje utilizando UUID desconocía totalmente esa posibilidad. 
Viendo el enlace que indicas creo que me puede ayudar mucho.


 > Para volver el tema un poco más pytonico, puedes probar a usar la
 > libusb. Hay bindings para python que funcionan en linux.

Llevo un buen rato intentado utilizarla para detectar los dispositivos 
pero algo no debo estar haciendo bien.

En linux (debian lenny) instalo el paquete python-usb pero al realizar 
'import usb.core' da el error 'ImportError: No module named core'

En windows parece que si lo he instalado bien, pero al obtener la lista 
de dispositivos aparecen todos con bDeviceClass=0 por lo que no soy 
capaz de distinguir cual de ellos es el disco usb.

De todas formas parece que el modulo libusb esta enfocado para el acceso 
a los dispositivos bajo nivel y mi necesidad es simplemente saber que 
están, y donde están.

Gracias de nuevo a todos

-- 
Oswaldo Hernández


Más información sobre la lista de distribución Python-es