como ler e modificar fstab em python?


8

Quero configurar automaticamente o meu fstabin pythonexecutando um script. Pensei em usar ConfigParserem python, mas eu sou incapaz de usá-lo corretamente.


1
Votei em migrar isso para o StackOverflow. Você pode estar falando sobre editar um arquivo específico em um sistema operacional * nix, mas está perguntando sobre isso em uma linguagem de programação (o que significa, para mim, que a resposta está mais relacionada à programação do que ao * nix).
HalosGhost

1
A programação de shell do @HalosGhost geralmente consiste em editar um arquivo específico e está sempre em alguma linguagem de programação, desde que seja para fins administrativos de U&L, acho que não devemos mover todas essas perguntas.
Anthon

@Anthon, os shell geralmente são * nix específicos. Esta não é uma questão de programação de shell, é uma questão de Python. Mas não tenho a capacidade de migrar; foi apenas uma votação.
HalosGhost

Respostas:


9

Você pode usar o módulo fstab .

Sua documentação aqui .

Exemplo:

fstab = Fstab()

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

5

Isso não funcionará porque o /etc/fstabarquivo não está em conformidade com o formato suportado pelo ConfigParser.

Como man 5 fstabindica, o /etc/fstabarquivo é um arquivo separado por espaço em branco com 6 colunas. O Python ConfigParser é uma biblioteca para analisar arquivos comumente conhecidos como .iniarquivos que, simplificados, consistem em seções que contêm pares de chave / valor:

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

Analisar o fstabarquivo você mesmo é relativamente fácil. Apenas copie todas as linhas de comentário (aquelas com o primeiro caractere que não sejam espaços em branco '#') e divida as outras linhas usando .split()os 6 campos. Eu uso isso para reorganizar meu fstabarquivo para ter apenas 79 colunas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.