Lesen und schreiben die INI-Datei in Python

Vaibhav Vaibhav 14 April 2022
Lesen und schreiben die INI-Datei in Python

Eine INI-Datei ist eine Konfigurationsdatei für Computersoftware.

Es enthält Schlüssel-Wert-Paare, die Eigenschaften und ihre Werte darstellen. Diese Schlüssel-Wert-Paare sind in Abschnitten organisiert.

Eine INI-Datei hat die Erweiterung .ini. Eine INI-Datei wird von Microsoft Windows und Microsoft Windows-basierten Anwendungen verwendet, und die Software verwendet INI-Dateien, um ihre Konfiguration zu speichern.

Python ist eine robuste und vielseitige Programmiersprache, die Desktop-Anwendungen erstellen kann. Da Desktop-Anwendungen Microsoft Windows-basierte Anwendungen und Software umfassen, sollten Python-Entwickler INI-Dateien verwenden, um Konfigurationen zu speichern und sie bei Bedarf zu lesen.

In diesem Artikel lernen Sie, wie man INI-Dateien mit Python liest und schreibt.

Lesen und schreiben die INI-Datei in Python

Um INI-Dateien zu lesen und zu schreiben, können wir das Modul configparser verwenden. Dieses Modul ist Teil der Standardbibliothek von Python und dient der Verwaltung von INI-Dateien, die in Microsoft Windows zu finden sind.

Dieses Modul hat eine Klasse ConfigParser, die alle Dienstprogramme enthält, um mit INI-Dateien herumzuspielen. Wir können dieses Modul für unseren Anwendungsfall verwenden.

Lassen Sie uns die Verwendung dieser Bibliothek anhand eines einfachen Beispiels verstehen. Siehe dazu den folgenden Python-Code.

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'")

Ausgabe:

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

Erläuterung des Python-Codes

Das Python-Skript erstellt zunächst ein Objekt der Klasse ConfigParser und liest die durch filename angegebene INI-Datei. Es treten keine Probleme auf, wenn die Datei im angegebenen Pfad nicht vorhanden ist.

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

Als nächstes versucht es, mit der Methode add_section() einen SETTINGS-Abschnitt in der INI-Datei zu erstellen.

Die Methode add_section() löst eine Ausnahme configparser.DuplicateSectionError aus, wenn der Abschnitt bereits in der Datei INI existiert. Deshalb ist der Funktionsaufruf von try- und except-Blöcken umgeben.

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")

Als nächstes schreiben wir mit der Funktion set() Daten in die INI-Datei.

Die Funktion set() verlangt drei Argumente, nämlich section, option und value. Das bedeutet, dass ein Schlüssel-Wert-Paar unter dem section hinzugefügt wird, wobei der Schlüssel die option und der Wert der value ist.

Das obige Python-Skript fügt 5 solcher Paare hinzu.

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

Als nächstes wird die Datei INI geöffnet, mit der Methode write() der Bibliothek configparser mit Daten beschrieben und schliesslich gespeichert.

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'")

Das Python-Skript liest erneut die INI-Datei, um den Inhalt der INI-Datei zu lesen, und ruft mit der get()-Methode alle geschriebenen Informationen ab. Die Methode get() akzeptiert zwei Parameter: section und option.

Es findet die option unter dem section. Die Methode get() löst eine NoOptionError-Ausnahme aus, wenn sie die angegebene Option im angegebenen Abschnitt nicht finden kann.

Um also Laufzeitausnahmen zu vermeiden, sind der Methodenaufruf get() und die Anweisung print() in den Block try...except eingeschlossen.

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.

Verwandter Artikel - Python File