3

我正在为 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-addedandmount-removed发出信号,而不是volume-addedand volume-removed

4

2 回答 2

2

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

$ blkid -o value -s LABEL /dev/sda1
/boot
于 2011-03-25T13:09:34.713 回答
1

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

e2label /dev/sda1

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

os.system在 Python 中,您可以使用或调用命令Popen

于 2011-01-30T14:04:18.627 回答