我正在制作一个类似于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
和mount-removed
信号,而不是volume-added
和volume-removed
。
您可以使用
blkid
而不是使用e2label
命令,然后解析其输出:当像这样使用时,
e2label
命令将告诉您卷标:注意:这只适用于ext2、ext3或ext4文件系统。
从Python中,可以使用
os.system
或Popen
调用命令相关问题 更多 >
编程相关推荐