Lire et écrire un fichier INI en Python

Vaibhav Vaibhav 14 avril 2022
Lire et écrire un fichier INI en Python

Un fichier INI est un fichier de configuration d’un logiciel informatique.

Il contient des paires clé-valeur qui représentent des propriétés et leurs valeurs. Ces paires clé-valeur sont organisées en sections.

Un fichier INI a pour extension .ini. Un fichier INI est utilisé par Microsoft Windows et les applications basées sur Microsoft Windows, et le logiciel utilise des fichiers INI pour stocker leur configuration.

Python est un langage de programmation robuste et polyvalent qui peut créer des applications de bureau. Étant donné que les applications de bureau incluent des applications et des logiciels basés sur Microsoft Windows, les développeurs Python doivent utiliser des fichiers INI pour stocker les configurations et les lire chaque fois que nécessaire.

Cet article vous apprendra comment lire et écrire des fichiers INI en utilisant Python.

Lire et écrire un fichier INI en Python

Pour lire et écrire des fichiers INI, nous pouvons utiliser le module configparser. Ce module fait partie de la bibliothèque standard de Python et est conçu pour gérer les fichiers INI trouvés dans Microsoft Windows.

Ce module possède une classe ConfigParser contenant tous les utilitaires pour jouer avec les fichiers INI. Nous pouvons utiliser ce module pour notre cas d’utilisation.

Comprenons l’utilisation de cette bibliothèque à l’aide d’un exemple simple. Reportez-vous au code Python suivant pour cela.

import configparser

filename = "file.ini"

# Writing Data
config = configparser.ConfigParser()
config.read(filename)

try:
    config.add_section("SETTINGS")
except configparser.DuplicateSectionError:
    pass

config.set("SETTINGS", "time", "utc")
config.set("SETTINGS", "time_format", "24h")
config.set("SETTINGS", "language", "english")
config.set("SETTINGS", "testing", "false")
config.set("SETTINGS", "production", "true")

with open(filename, "w") as config_file:
    config.write(config_file)

# Reading Data
config.read(filename)
keys = ["time", "time_format", "language", "testing", "production"]
for key in keys:
    try:
        value = config.get("SETTINGS", key)
        print(f"{key}:", value)
    except configparser.NoOptionError:
        print(f"No option '{key}' in section 'SETTINGS'")

Production :

time: utc
time_format: 24h
language: english
testing: false
production: true

Explication du code Python

Le script Python crée d’abord un objet de la classe ConfigParser et lit le fichier INI spécifié par le filename. Il n’y aura aucun problème si le fichier n’existe pas dans le chemin spécifié.

try:
    config.add_section("SETTINGS")
except configparser.DuplicateSectionError:
    pass

Ensuite, il essaie de créer une section SETTINGS dans le fichier INI en utilisant la méthode add_section().

La méthode add_section() lève une exception configparser.DuplicateSectionError lorsque la section existe déjà dans le fichier INI. C’est pourquoi l’appel de fonction est entouré de blocs try et except.

config.set("SETTINGS", "time", "utc")
config.set("SETTINGS", "time_format", "24h")
config.set("SETTINGS", "language", "english")
config.set("SETTINGS", "testing", "false")
config.set("SETTINGS", "production", "true")

Ensuite, en utilisant la fonction set(), nous écrivons des données dans le fichier INI.

La fonction set() demande trois arguments, à savoir section, option et value. Cela signifie qu’une paire clé-valeur sera ajoutée sous la section, où la clé est l’option et la valeur est la value.

Le script Python ci-dessus ajoute 5 de telles paires.

with open(filename, "w") as config_file:
    config.write(config_file)

Ensuite, le fichier INI est ouvert, les données y sont écrites à l’aide de la méthode write() de la bibliothèque configparser, et enfin, enregistrées.

config.read(filename)
keys = ["time", "time_format", "language", "testing", "production"]
for key in keys:
    try:
        value = config.get("SETTINGS", key)
        print(f"{key}:", value)
    except configparser.NoOptionError:
        print(f"No option '{key}' in section 'SETTINGS'")

Le script Python relit à nouveau le fichier INI pour lire le contenu du fichier INI, et à l’aide de la méthode get(), il récupère toutes les informations écrites. La méthode get() accepte deux paramètres : section et option.

Il trouvera l’option sous la section. La méthode get() lève une exception NoOptionError lorsqu’elle ne parvient pas à trouver l’option spécifiée dans la section spécifiée.

Ainsi, pour éviter toute exception d’exécution, l’appel de la méthode get() et l’instruction print() sont inclus dans le bloc try...except.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python File