miércoles, 5 de diciembre de 2012

Obtener lista de dispositivos USB con Python.

Para obtener la lista de dispositivos de almacenamiento extraíbles en Python ocuparemos al demonio dbus:
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import dbus

bus = dbus.SystemBus()
ud_manager_obj = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
ud_manager = dbus.Interface(ud_manager_obj, 'org.freedesktop.UDisks')

print "Escoje un dispositivo"
for dev in ud_manager.EnumerateDevices():
        device_obj = bus.get_object("org.freedesktop.UDisks", dev)
           device_props = dbus.Interface(device_obj, dbus.PROPERTIES_IFACE)

    if dbus.Boolean(device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsRemovable")) and not dbus.Boolean(device_props.Get('org.freedesktop.UDisks.Device', "DriveIsMediaEjectable")):
        print j
        print "\tFabricante:\t",device_props.Get('org.freedesktop.UDisks.Device', "DriveVendor")
        print "\tModelo:\t\t",device_props.Get('org.freedesktop.UDisks.Device', "DriveModel")
        print "\tPath:\t\t",device_props.Get('org.freedesktop.UDisks.Device', "DeviceFile")

        print "\tSerie:\t\t",device_props.Get('org.freedesktop.UDisks.Device', "DriveSerial")
Básicamente lo que se hace es decirle al demonio que busque en todas las interfaces disponibles y después preguntamos que dispositivos están conectados, al final hacemos un filtro para que nos muestre sólo aquellos dispositivos que son de almacenamiento extraíble.

No hay comentarios:

Publicar un comentario