Eu não me importo se é JSON
, pickle
, YAML
, ou o que quer.
Todas as outras implementações que vi não são compatíveis com versões futuras, portanto, se eu tiver um arquivo de configuração, adicionar uma nova chave no código e carregar esse arquivo de configuração, ele simplesmente travará.
Existe alguma maneira simples de fazer isso?
.ini
formato -like doconfigparser
módulo deve fazer o que você quiser.Respostas:
Arquivos de configuração em python
Existem várias maneiras de fazer isso, dependendo do formato de arquivo necessário.
ConfigParser [formato .ini]
Eu usaria a abordagem do configparser padrão , a menos que houvesse motivos convincentes para usar um formato diferente.
Escreva um arquivo como este:
O formato do arquivo é muito simples, com seções marcadas entre colchetes:
Os valores podem ser extraídos do arquivo como:
JSON [formato .json]
Os dados JSON podem ser muito complexos e têm a vantagem de serem altamente portáteis.
Grave dados em um arquivo:
Leia os dados de um arquivo:
YAML
Um exemplo básico de YAML é fornecido nesta resposta . Mais detalhes podem ser encontrados no site da pyYAML .
fonte
from configparser import ConfigParser
config = ConfigParser()
Exemplo básico do ConfigParser
O arquivo pode ser carregado e usado assim:
quais saídas
Como você pode ver, você pode usar um formato de dados padrão fácil de ler e gravar. Métodos como getboolean e getint permitem que você obtenha o tipo de dados em vez de uma string simples.
Configuração de gravação
resulta em
Exemplo básico de XML
Parece não ser usado para arquivos de configuração pela comunidade Python. No entanto, analisar / escrever XML é fácil e há muitas possibilidades de fazer isso com Python. Um é BeautifulSoup:
onde o config.xml pode se parecer com este
fonte
Se você quiser usar algo como um arquivo INI para manter as configurações, considere usar o configparser, que carrega pares de valores-chave de um arquivo de texto e pode facilmente gravar de volta no arquivo.
O arquivo INI tem o formato:
fonte
Salve e carregue um dicionário. Você terá chaves, valores e número arbitrário de pares de chaves e valores arbitrários.
fonte
Tente usar ReadSettings :
fonte
tente usar cfg4py :
AVISO LEGAL: Eu sou o autor deste módulo
fonte