Se você já quis um arquivo de configuração para fazer um programa/script ter uma cara mais profissional, eis aqui uma solução simples em python.

Constatação: Config parser em python é realmente muito fácil! (comparado com Perl pelo menos)

O arquivo de configuração deve conter uma ou mais sections e diversos options com seus respectivos valores.

Segue um exemplo:

[Main]
use_smtp = 1
daemon = 0

[Host]
smtp_host = mail.gmail.com
smtp_user = admin@gmail.com

O parser em si é bem auto-explicativo, segue o código:

#biblioteca padrão para Config parsing !
import ConfigParser

config = ConfigParser()
config.read("file.conf")
config.list={}

for section in config.sections():
	print section
	for option in config.options(section):
		print " ", option,"=", config.get(section,option)
		config.list[option]=config.get(section,option)

print
print

# duas maneiras para acessar o option
# diretamente através da função .get
print config.get("Host","smtp_user")

#ou a partir da lista gerada no segundo "for" do script
print config.list['smtp_user']

De resto, basta criar uma classe ou função para esse código e adapta-lo para os seus próprios programas!

10 Responses to “ConfigParser em python, arquivos de configuração nos seus scripts!”

  1. ConfigParser em Python, arquivos de configuração nos seus scripts Says:

    [...] por Pascal (pascal?tarzxvf·com) – referência [...]

  2. Walter Cruz Says:

    Boa dica! Abraço!

  3. FZero Says:

    Tem um erro na linha 5 (ou 6, se você contar a em branco):

    - condif.list={}
    + config.list={}

  4. Pascal Says:

    FZero, valeu por avisar, já estou arrumando!

  5. Hamilton Says:

    Tem um erro no segundo for onde está “options” é “option”

    Aproveitando, boa dica…

  6. Hamilton Says:

    também tem a variavel config = ConfigParser() que ao certo é config = ConfigParser.ConfigParser()

  7. Pascal Says:

    Valeu pelo aviso, vou corrigir mais a noite!

  8. Diego Daniel Duarte Says:

    Olá!
    Eu tentei utilizar um exemplo, mas com um arquivo de configuração diferente. E também passando o caminho no arquivo ao invés de utilizar um arquivo local e não está funcionando. Será que existe alguma limitação quanto à passar o caminho?

  9. Pascal Says:

    Diego@

    Não existe tal limitação.
    Basta você especificar o novo path como por exemplo /etc/file.conf

    Copie e cole aqui o erro que você está tendo que fica mais fácil te ajudar.

    Abraços.

  10. InFog Says:

    Ótima dica! Usei para o arquivo de configuração do GeSpeak =)

    InFog

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word