web-dev-qa-db-fra.com

obtenir un appareil avec point de montage

y a-t-il un moyen d'obtenir le nom de périphérique (/dev/sdx) avec le dossier monté? Je veux dire, obtenez le périphérique associé à un point de montage en utilisant le dossier monté comme référence ou créez un dictionnaire python avec le mount points : devices...

je sais que mount -l peut me procurer les informations du système de fichiers monté, mais je ne sais pas vraiment comment le dépouiller pour créer le dictionnaire ...

de l'aide?

Cordialement...

3
Hairo

Ceci n’a aucun rapport avec Ubuntu, mais vous êtes ici:

#!/usr/bin/env python

import subprocess

mounts = {}

for line in subprocess.check_output(['mount', '-l']).split('\n'):
    parts = line.split(' ')
    if len(parts) > 2:
        mounts[parts[2]] = parts[0]

print mounts
6
Sergey
mount | cut -f 1,3 -d ' '

Explication: cut est un petit outil pratique pour fractionner des lignes à l'aide d'un caractère délimiteur (spécifié par l'option -d) et pour sélectionner certains des champs à afficher (en utilisant une liste d'arguments séparés par une virgule pour l'option -f). Comme la sortie mount est régulière et délimitée par des espaces, la première et la troisième colonnes ci-dessus sont sorties, en omettant "on" et le reste de la ligne.

3
January

Pourquoi ne pas utiliser l'interface Gio? J'aime mieux ces solutions que d'exécuter une commande bash et d'analyser sa sortie. De cette façon, vous pouvez attraper des exceptions et avoir plus de contrôle.

Voici un petit exemple:

>>> from gi.repository import Gio
>>> vm = Gio.VolumeMonitor.get()
>>> for v in vm.get_volumes():
...     print v.get_name()

Voir la documentation pour des méthodes beaucoup plus intéressantes.

GVolumeMonitor

GVolume

Gmount

3
Timo