Necesito leer, escribir y crear un INI archivo con Python3.
FILE.INI
default_path = "/path/name/"
default_file = "file.txt"
Archivo 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 ACTUALIZADO
default_path = "var/shared/"
default_file = "file.txt"
default_message = "Hey! help me!!"
python
python-3.x
ini
Olaf
fuente
fuente
[foobar]
.Respuestas:
Esto puede ser algo para comenzar:
Puede encontrar más en la documentación oficial de configparser .
fuente
configparser.MissingSectionHeaderError
cuando se utilizan archivos de ejemplo proporcionados sin los encabezados de sección adecuados.Aquí hay un ejemplo completo de lectura, actualización y escritura.
Archivo de entrada, test.ini
Código de trabajo.
Archivo de salida, test_update.ini
El archivo de entrada original permanece intacto.
fuente
read
método ahora devuelve una lista de archivos / archivos leídos, pero no el contenidohttp://docs.python.org/library/configparser.html
La biblioteca estándar de Python puede resultar útil en este caso.
fuente
El estándar
ConfigParser
normalmente requiere acceso a través deconfig['section_name']['key']
, lo cual no es divertido. Una pequeña modificación puede ofrecer acceso a atributos:AttrDict
es una clase derivada de ladict
cual permite el acceso a través de claves de diccionario y acceso a atributos: eso significaa.x is a['x']
Podemos usar esta clase en
ConfigParser
:y ahora llegamos
application.ini
con:como
fuente
config._sections.general.key = "3"
no se cambia el valor interno de la opción de configuración y por lo tanto solo se puede usar para acceso de solo lectura. Si después del.read()
comando la configuración se amplía o cambia (agregue opciones, pares de valores para algunas secciones, -> que hace interpolación, lo cual podría ser muy importante), ¡este método de acceso no debe usarse! ¡Además, cualquier acceso alconfig._sections["section"]["opt"]
que sea privado elude la interpolación y devuelve los valores sin procesar!ConfigObj es una buena alternativa a ConfigParser que ofrece mucha más flexibilidad:
Tiene algunos inconvenientes:
=
... ( solicitud de extracción )fuabr =
lugar de simplemente lofubar
que se ve extraño e incorrecto.fuente
contenido en mi archivo backup_settings.ini
código python para leer
para escribir o actualizar
salida
fuente