Como manipular arquivos .ini com Python

Como manipular arquivos .ini com Python

Os arquivos de configuração, com extensão .ini, são muito usados em software para guardar diversos dados do usuário e do sistema. Exemplos de dados que são guardados nestes arquivos são tamanho de tela, ultimas configurações do usuário, nome/ip de banco de dados para conexão, entre vários outros.

Conhecendo o arquivo .ini

A estrutura básica de um arquivo .ini segue:

[seção1]
chave1=valor1
chave2=valor2
chave3=valor3
chave4=valor4

[seção2]
chave1=valor1
chave2=valor2
chave3=valor3
chave4=valor4

A estrutura do arquivo em si é básica e sua construção é feita em pares de  chave/valor e sua seção, que é o domínio a que estes pares pertencem. Como foi possível constatar, a estrutura é simples e pode ser facilmente manipulada por um programador. Felizmente existem alternativas que já fazem este trabalho, agilizando muito a integração com este formato.

Na versão 2.6 do Python foi introduzida a API (Application Programming InterfaceConfigParser, que é responsável por manipular estes arquivos. Seu uso é bem simples e não apresenta nenhuma dificuldade inicial. A seguir segue um pedaço de código e um arquivo ini que é manipulado por este programa.

Arquivo config.ini:

[dados]
nome=marcos
email=marcos@sempreupdate.com

[configuracao]
largura_tela=800
altura_tela=600

Arquivo manipula_ini.py:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read(“config.ini”)

print config.sections()

try:
        print ‘nome == ‘ + config.get(‘dados’, ‘nome’)
except:
        print ‘Chave nome nao encontrada’

config.set(‘dados’, ‘nome’, ‘paulo’)

try:
        print ‘nome == ‘ + config.get(‘dados’, ‘nome’)
except:
        print ‘Chave nome nao encontrada’

config.remove_section(‘configuracao’)

f = open(‘new_config.ini’, ‘w’)

config.write(f)

f.close()

O código acima aborda algumas características do módulo ConfigParser:

  • read: Lê um arquivo .ini e inicializa objeto config.
  • config.sections: Retorna uma lista com todas as seções do arquivo ini
  • config.get: Busca o valor de uma chave(passada por parâmetro) dentro de uma seção (também passada por parâmetro)
  • config.write: Cria um novo arquivo de configuração com o objeto config.
  • config.set: altera o valor de uma chave, dentro de uma seção
  • config.remove_section: Remove a seção passada como parâmetro

Estes dois últimos métodos somente alteram/removem dados do objeto em memória, e não do arquivo lido. Para alterar o arquivo, é necessário executar o método write e criar um arquivo, ou sobrescrever o arquivo prévio com o config alterado em memória.

Bom pessoal, este foi apenas um introdução a API. Para maiores informações basta acessar a documentação do Python oficial.

Acesse a versão completa
Sair da versão mobile