Eu preciso ler, escrever e criar um arquivo INI com Python3.
FILE.INI
default_path = "/path/name/"
default_file = "file.txt"
Arquivo Python:
# Read file and and create if it not exists
config = iniFile( 'FILE.INI' )
# Get "default_path"
config.default_path
# Print (string)/path/name
print config.default_path
# Create or Update
config.append( 'default_path', 'var/shared/' )
config.append( 'default_message', 'Hey! help me!!' )
FILE.INI ATUALIZADO
default_path = "var/shared/"
default_file = "file.txt"
default_message = "Hey! help me!!"
python
python-3.x
ini
Olaf
fonte
fonte
[foobar]
.Respostas:
Isso pode ser algo para começar:
Você pode encontrar mais na documentação oficial do configparser .
fonte
configparser.MissingSectionHeaderError
ao usar arquivos de exemplo fornecidos sem os cabeçalhos de seção apropriados.Aqui está um exemplo completo de leitura, atualização e gravação.
Arquivo de entrada, test.ini
Código de trabalho.
Arquivo de saída, test_update.ini
O arquivo de entrada original permanece intocado.
fonte
read
método agora retorna uma lista de arquivos / arquivos lidos, mas não o conteúdohttp://docs.python.org/library/configparser.html
A biblioteca padrão do Python pode ser útil neste caso.
fonte
O padrão
ConfigParser
normalmente requer acesso viaconfig['section_name']['key']
, o que não é divertido. Uma pequena modificação pode fornecer acesso ao atributo:AttrDict
é uma classe derivada dadict
qual permite o acesso por meio de chaves de dicionário e acesso de atributo: isso significaa.x is a['x']
Podemos usar esta classe em
ConfigParser
:e agora temos
application.ini
com:Como
fonte
config._sections.general.key = "3"
não está alterando o valor interno da opção de configuração e, portanto, só pode ser usado para acesso somente leitura. Se após o.read()
comando a configuração for estendida ou alterada (adicionar opções, pares de valores para algumas seções, -> que faz interpolação que pode ser muito importante), este método de acesso não deve ser usado! Além disso, qualquer acessoconfig._sections["section"]["opt"]
privado contorna a interpolação e retorna os valores brutos!O ConfigObj é uma boa alternativa ao ConfigParser, que oferece muito mais flexibilidade:
Tem algumas desvantagens:
=
... ( solicitação de pull )fuabr =
vez de apenas ofubar
que parece estranho e errado.fonte
conteúdo no meu arquivo backup_settings.ini
código python para leitura
para escrever ou atualizar
resultado
fonte