Vous pouvez le faire en une seule ligne de code.
Dans python 3, ajoutez un faux en-tête de section aux données de votre fichier de configuration et transmettez-le à read_string()
.
from configparser import ConfigParser
parser = ConfigParser()
with open("foo.conf") as stream:
parser.read_string("[top]\n" + stream.read())
Vous pouvez également utiliser itertools.chain()
pour simuler un en-tête de section pour read_file()
. Cela peut être plus efficace en mémoire que l'approche ci-dessus, ce qui peut être utile si vous avez des fichiers de configuration volumineux dans un environnement d'exécution contraint.
from configparser import ConfigParser
from itertools import chain
parser = ConfigParser()
with open("foo.conf") as lines:
lines = chain(("[top]",), lines)
parser.read_file(lines)
Dans python 2, ajoutez un faux en-tête de section aux données de votre fichier de configuration, enveloppez le résultat dans un StringIO
objet et transmettez-le à 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)
Avec l'une de ces approches, vos paramètres de configuration seront disponibles dans parser.items('top')
.
Vous pouvez également utiliser StringIO dans python 3, peut-être pour la compatibilité avec les anciens et les nouveaux interpréteurs python, mais notez qu'il réside désormais dans le io
package et qu'il readfp()
est désormais obsolète.
Vous pouvez également envisager d'utiliser un analyseur TOML au lieu de ConfigParser.