Puede hacer esto en una sola línea de código.
En Python 3, anteponga un encabezado de sección falso a los datos de su archivo de configuración y páselo a read_string()
.
from configparser import ConfigParser
parser = ConfigParser()
with open("foo.conf") as stream:
parser.read_string("[top]\n" + stream.read())
También puede usar itertools.chain()
para simular un encabezado de sección para read_file()
. Esto podría ser más eficiente en memoria que el enfoque anterior, lo que podría ser útil si tiene archivos de configuración grandes en un entorno de ejecución restringido.
from configparser import ConfigParser
from itertools import chain
parser = ConfigParser()
with open("foo.conf") as lines:
lines = chain(("[top]",), lines)
parser.read_file(lines)
En Python 2, anteponga un encabezado de sección falso a los datos de su archivo de configuración, envuelva el resultado en un StringIO
objeto y páselo a readfp()
.
from ConfigParser import ConfigParser
from StringIO import StringIO
parser = ConfigParser()
with open("foo.conf") as stream:
stream = StringIO("[top]\n" + stream.read())
parser.readfp(stream)
Con cualquiera de estos enfoques, su configuración de configuración estará disponible en parser.items('top')
.
También podría usar StringIO en Python 3, quizás por compatibilidad con los intérpretes de Python nuevos y antiguos, pero tenga en cuenta que ahora vive en el io
paquete y readfp()
ahora está en desuso.
Alternativamente, podría considerar usar un analizador TOML en lugar de ConfigParser.