Localizando o rótulo de volume de um dispositivo de armazenamento em massa usb usando python

2

Alguém poderia me dizer como eu poderia obter um rótulo de volume do dispositivo de armazenamento em massa USB (o nome exibido no explorador, não o nome do dispositivo :: / dev / sdX) usando python? bibliotecas / módulos embora o HAL tenha descontinuado, por favor não o sugira como uma opção.

    
por Vineet Kaushik 20.03.2014 / 20:21

1 resposta

2

Você pode consultar o UDisks2 usando a API dbus do python:

Instale o python-dbus:

sudo apt-get install python-dbus

Execute este pequeno snippet de python:

cat <<EOF | python -
import dbus
bus = dbus.SystemBus()
ud_manager_obj = bus.get_object('org.freedesktop.UDisks2', '/org/freedesktop/UDisks2')
om = dbus.Interface(ud_manager_obj, 'org.freedesktop.DBus.ObjectManager')
for k,v in om.GetManagedObjects().iteritems():
    drive_info = v.get('org.freedesktop.UDisks2.Drive', {})
    if drive_info.get('ConnectionBus') == 'usb' and drive_info.get('Removable'):
        print("Device Label: %s" % drive_info['Id'])
EOF

Com uma unidade USB conectada, recebo:

Device Label: Generic-Flash-Disk-EEA1EE5B
    
por Sylvain Pineau 20.03.2014 / 21:21