我正在为 Linux 制作类似已安装设备的列表。
在程序启动时,我解析 /etc/mtab 以获取现有的挂载。要获得有关添加到系统的新挂载的通知,我正在使用 DBus,并且在消息中我得到了 volume.label 属性。有没有办法根据设备名称(如 /dev/sda1 或 /dev/sdd)获取卷标?
编辑:
一段时间后,我设法找到了解决此问题的方法。Pythongio
模块有一个名为 VolumeMonitor 的类。因此,通过迭代方法的结果来获取具有好名称和正确图标的列表很简单get_mounts()
:
for mount in volume_monitor.get_mounts():
print mount.get_name(), mount.get_icon()
您还可以获得驱动器和卷的列表。您还可以适当地连接一些信号并更新列表。一张纸条。Volume 是第一个出现在列表中并且最先触发它自己的事件的,mounts 稍后出现。因此,如果您希望维护一个活动坐骑列表,请收听mount-added
andmount-removed
发出信号,而不是volume-added
and volume-removed
。