Wie lese und ändere ich fstab in Python?


8

Ich möchte mein fstabIn automatisch konfigurieren, pythonindem ich ein Skript ausführe. Ich habe überlegt, ConfigParserin zu verwenden python, aber ich kann es nicht richtig verwenden.


1
Ich habe dafür gestimmt, dies auf StackOverflow zu migrieren. Sie sprechen vielleicht über das Bearbeiten einer bestimmten Datei unter einem * nix-Betriebssystem, aber Sie fragen danach in einer Programmiersprache (was für mich bedeutet, dass die Antwort mehr mit Programmieren als mit * nix zu tun hat).
HalosGhost

1
Bei der @ HalosGhost-Shell-Programmierung geht es oft darum, eine bestimmte Datei zu bearbeiten, und sie ist immer in einer Programmiersprache verfügbar. Solange dies für U & L-Verwaltungszwecke vorgesehen ist, sollten wir nicht alle diese Fragen verschieben.
Anthon

@Anthon, Muscheln sind oft * nix-spezifisch. Dies ist keine Shell-Programmierfrage, sondern eine Python-Frage. Ich kann jedoch nicht migrieren. Es war nur eine Abstimmung.
HalosGhost

Antworten:


9

Sie können das fstab- Modul verwenden.

Seine Dokumentation hier .

Beispiel:

fstab = Fstab()

for entry in fstab.entries:
    pprint.pprint(entry)

5

Dies funktioniert nicht, da die /etc/fstabDatei nicht dem vom ConfigParser unterstützten Format entspricht.

Wie man 5 fstabangegeben, handelt es sich bei der /etc/fstabDatei um eine durch Leerzeichen getrennte Datei mit 6 Spalten. Der Python ConfigParser ist eine Bibliothek zum Parsen von Dateien, die allgemein als .iniDateien bezeichnet werden und vereinfacht aus Abschnitten bestehen, die Schlüssel / Wert-Paare enthalten:

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

Das Parsen der fstabDatei selbst ist relativ einfach. Kopieren Sie einfach alle Kommentarzeilen (die mit dem ersten Nicht-Leerzeichen '#') und teilen Sie die anderen Zeilen mit .split()den 6 Feldern auf. Ich verwende das, um meine fstabDatei auf nur 79 Spalten neu anzuordnen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.