Я делаю что-то вроде списка подключенных устройств для Linux.
При запуске программы я анализирую / etc / mtab для существующих монтирований.Чтобы получать уведомления о новых монтируемых в систему средствах, я использую DBus и в сообщении, которое я получаю, есть свойство volume.label.Есть ли способ получить метку тома на основе имени устройства, например / dev / sda1 или / dev / sdd?
Редактировать: Через некоторое время мне удалось найти решение этой проблемы.Модуль Python gio
имеет класс с именем VolumeMonitor.Таким образом, получить список с хорошими именами и правильными значками просто, как повторять результат метода get_mounts()
:
for mount in volume_monitor.get_mounts():
print mount.get_name(), mount.get_icon()
Вы также можете получить список дисков и томов.Вы также можете подключить некоторые сигналы и обновить список соответствующим образом.Хотя одна заметка.Volume первым появляется в списке и первым запускает свои собственные события, монтирование происходит позже.Поэтому, если вы хотите вести список активных монтировок, слушайте сигналы mount-added
и mount-removed
вместо volume-added
и volume-removed
.