如何使用Python基于设备名获取卷标

2024-05-17 19:44:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个类似于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-addedmount-removed信号,而不是volume-addedvolume-removed


Tags: 方法dev程序名称列表addedget信号
2条回答

您可以使用blkid而不是使用e2label命令,然后解析其输出:

$ blkid -o value -s LABEL /dev/sda1
/boot

当像这样使用时,e2label命令将告诉您卷标:

e2label /dev/sda1

注意:这只适用于ext2、ext3或ext4文件系统。

从Python中,可以使用os.systemPopen调用命令

相关问题 更多 >