使用python查找USB大容量存储设备的卷标

使用python查找USB大容量存储设备的卷标

有人能告诉我如何使用 python 获取 USB 大容量存储设备的卷标(资源管理器中显示的名称,而不是设备名称::/dev/sdX)吗?库/模块虽然 HAL 已弃用,所以请不要将其作为一种选项建议。

答案1

您可以使用 python 的 dbus API 查询 UDisks2:

安装python-dbus:

sudo apt-get install python-dbus

运行这个小的 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

连接 USB 驱动器后我得​​到:

Device Label: Generic-Flash-Disk-EEA1EE5B

相关内容