Vous pouvez lire et écrire des fichiers INI avec le configparser standard de la bibliothèque Python. https://docs.python.org/ja/3/library/configparser.html
Un fichier INI est un format de fichier parfois utilisé pour définir des fichiers, etc., qui se compose de sections, de clés et de valeurs. https://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
Par défaut, configparser est insensible à la casse pour les clés.
import configparser
ini_filename = "sample.ini"
"""Contenu du fichier INI
[General]
Name = hogehoge
"""
parser = configparser.ConfigParser()
parser.read(ini_filename)
"""lettre majuscule/Minuscule/Peut être lu indépendamment du mélange"""
assert parser["General"]["Name"] == "hogehoge", "Mixte"
assert parser["General"]["name"] == "hogehoge", "Minuscule"
assert parser["General"]["NAME"] == "hogehoge", "lettre majuscule"
Cela fonctionne à la fois pour la lecture et l'écriture de fichiers INI.
Le fichier side car utilisé dans le logiciel appelé RawTherapee a le contenu comme un fichier INI. Je voulais tout modifier en même temps, mais les fichiers side-car de RawTherapee sont sensibles à la casse pour les noms de clé. Par conséquent, si vous modifiez / enregistrez tel quel avec la classe ConfigParser, le nom de la clé sera entièrement en minuscules. Un problème est survenu à cause du fait que RawTherapee n'a pas pu être lu correctement.
Cela peut être résolu en définissant la fonction appropriée dans .optionxform
de l'instance ConfigParser.
Le nom de la clé pour la lecture et l'écriture est le résultat converti par la fonction ʻoptionxform`.
Par conséquent, si vous définissez ʻoptionxform` comme suit, vous pouvez enregistrer le fichier INI tout en conservant le nom de la clé.
parser = configparser.ConfigParser()
parser.optionxform = str
parser.read(ini_filename)
parser["General"]["Name"] = "test"
with open(ini_filename, "w") as fp:
parser.write(fp)
Recommended Posts