comment lire et modifier fstab en python?

8

Je souhaite configurer automatiquement mon entrée fstaben pythonexécutant un script. J'ai pensé à l'utiliser ConfigParserdans python, mais je ne peux pas l'utiliser correctement.

Shaels
la source
1
J'ai voté pour migrer cela vers StackOverflow. Vous parlez peut-être d'éditer un fichier particulier sur un système d'exploitation * nix, mais vous demandez à le faire dans un langage de programmation (ce qui signifie, pour moi, que la réponse concerne plus la programmation qu'avec * nix).
HalosGhost
1
La programmation shell @HalosGhost consiste souvent à éditer un fichier particulier et elle est toujours dans un langage de programmation, tant que c'est à des fins administratives U&L, je ne pense pas que nous devrions déplacer toutes ces questions.
Anthon
@Anthon, les shells sont souvent spécifiques à * nix. Ce n'est pas une question de programmation shell, c'est une question Python. Mais, je n'ai pas la capacité de migrer; ce n'était qu'un vote.
HalosGhost

Réponses:

9

Vous pouvez utiliser le module fstab .

Sa documentation ici .

Exemple:

fstab = Fstab()

for entry in fstab.entries:
    pprint.pprint(entry)
cuonglm
la source
5

Cela ne fonctionnera pas car le /etc/fstabfichier n'est pas conforme au format pris en charge par ConfigParser.

Comme man 5 fstabindiqué, le /etc/fstabfichier est un fichier séparé par des espaces avec 6 colonnes. Le Python ConfigParser est une bibliothèque pour analyser des fichiers communément appelés .inifichiers qui, simplifiés, se composent de sections qui contiennent des paires clé / valeur:

 [section_name1]
 key1 = value1
 key2 = value2
 [section_name2]
 key3 = value3

L'analyse du fstabfichier vous-même est relativement facile. Copiez simplement toutes les lignes de commentaires (celles avec le premier caractère non blanc '#') et divisez les autres lignes en utilisant .split()les 6 champs. J'utilise cela pour réorganiser mon fstabfichier en 79 colonnes seulement.

Anthon
la source