[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