有人能告诉我如何使用 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