Comandos

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 protected]

[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.

Emanuel Negromonte Autor
Autor
Jornalista especialista em Linux a mais de 20 anos. Fundador do SempreUpdate e entusiasta do software livre.