[PYTHON] Comment utiliser le module ConfigParser

J'ai étudié le module ConfigParser qui gère le fichier de configuration (fichier ini).

Qu'est-ce qu'un fichier INI?

Fichier INI-Wikipedia

Gestion des fichiers INI en Python

Python fournit ConfigParser, un module qui peut lire et écrire des fichiers INI en standard.

13.2. ConfigParser - Analyseur de syntaxe de fichier de configuration - Documentation Python 2.7ja1

Exemple de version de Python 2 (check_config.py)

Donc, j'ai créé l'outil suivant comme exemple. Fonctionne sur Python 2.7.

check_config.py



#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
check_config.py
Utilitaire pour vérifier le fichier ini

Mise en garde!
La vérification des erreurs est bâclée.
'''

import ConfigParser
import os
import sys


def show_config(ini):
    '''
Afficher tout le contenu du fichier de paramètres (à l'exception des commentaires)
    '''
    for section in ini.sections():
        print '[%s]' % (section)
        show_section(ini, section)
    return


def show_section(ini, section):
    '''
Afficher le contenu d'une section particulière du fichier de configuration
    '''
    for key in ini.options(section):
        show_key(ini, section, key)
    return


def show_key(ini, section, key):
    '''
Afficher le contenu d'un élément clé spécifique (propriété) dans une section spécifique du fichier de paramètres
    '''
    print '%s.%s =%s' % (section, key, ini.get(section, key))
    return


def set_value(ini, section, key, value):
    '''
Modifier le contenu d'un élément clé spécifique (propriété) dans une section spécifique du fichier de paramètres
    '''
    ini.set(section, key, value)
    print 'set %s.%s =%s' % (section, key, ini.get(section, key))
    return


def usage():
    sys.stderr.write("Usage: %s inifile [section [key [value]]]\n" % sys.argv[0])
    return


if __name__ == '__main__':
    argc = len(sys.argv)
    if argc == 1:
        usage()
        sys.exit(1)

    #Lire le fichier de configuration
    INI_FILE = sys.argv[1]
    ini = ConfigParser.SafeConfigParser()
    if os.path.exists(INI_FILE):
        ini.read(INI_FILE)
    else:
        sys.stderr.write('%est introuvable' % INI_FILE)
        sys.exit(2)

    if argc == 2:
        show_config(ini)
    elif argc == 3:
        show_section(ini, sys.argv[2])
    elif argc == 4:
        show_key(ini, sys.argv[2], sys.argv[3])
    elif argc == 5:
        set_value(ini, sys.argv[2], sys.argv[3], sys.argv[4])
        #Écrire dans un fichier (Attention, dans la situation actuelle, les commentaires et les sauts de ligne seront supprimés)
        f = open(INI_FILE, "w")
        ini.write(f)
        f.close()
    else:
        usage()
        sys.exit(3)

    sys.exit(0)
#EOF

Comment utiliser

Eh bien, comme vous pouvez le voir à partir du code source, w

python


python check_config.py

Lorsqu'aucun argument n'est spécifié. Afficher l'utilisation (). C'est un moyen promis de commandes UNIX.

python


python check_config.py inifile

Quand il n'y a qu'un seul argument. Dans le premier argument, spécifiez le nom de fichier du fichier INI. Afficher le contenu de inifile.

python


python check_config.py inifile section

S'il y a deux arguments. Dans le deuxième argument, spécifiez la section du fichier INI. Afficher le contenu d'une section particulière d'un fichier inifile.

python


python check_config.py inifile section key

S'il y a trois arguments. Dans le troisième argument, spécifiez l'élément clé (clé) d'une section spécifique du fichier INI. Afficher le contenu d'un élément clé spécifique (clé) d'une section spécifique d'un inifile.

python


python check_config.py inifile section key value

S'il y a quatre arguments. Dans le quatrième argument, spécifiez le contenu (valeur) à modifier pour l'élément clé de la section spécifique du fichier INI. Seule cette opération réécrit le fichier INI. Modification d'un élément clé spécifique (clé) d'une section spécifique du fichier inifile en valeur de contenu.

Exemple de version de Python 3

De nos jours, la version Python2 est ridicule, nous avons donc préparé la version Python3 également.

Fonctionne sur Python 3.5.

check_config.py



#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
check_config.py
Utilitaire pour vérifier le fichier ini

Mise en garde!
La vérification des erreurs est bâclée.
'''

import configparser
import os
import sys


def show_config(ini):
    '''
Afficher tout le contenu du fichier de paramètres (à l'exception des commentaires)
    '''
    for section in ini.sections():
        print ("[" + section + "]")
        show_section(ini, section)
    return


def show_section(ini, section):
    '''
Afficher le contenu d'une section particulière du fichier de configuration
    '''
    for key in ini.options(section):
        show_key(ini, section, key)
    return


def show_key(ini, section, key):
    '''
Afficher le contenu d'un élément clé spécifique (propriété) dans une section spécifique du fichier de paramètres
    '''
    print (section + "." + key + " = " + ini.get(section, key))
    return


def set_value(ini, section, key, value):
    '''
Modifier le contenu d'un élément clé spécifique (propriété) dans une section spécifique du fichier de paramètres
    '''
    ini.set(section, key, value)
    print (section + "." + key + " = " + ini.get(section, key))
    return


def usage():
    sys.stderr.write("Usage: " + sys.argv[0] + " inifile [section [key [value]]]\n")
    return


if __name__ == '__main__':
    argc = len(sys.argv)
    if argc == 1:
        usage()
        sys.exit(1)

    #Lire le fichier de configuration
    INI_FILE = sys.argv[1]
    ini = configparser.SafeConfigParser()
    if os.path.exists(INI_FILE):
        ini.read(INI_FILE, encoding='utf8')
    else:
        sys.stderr.write(INI_FILE + "Pas trouvé")
        sys.exit(2)

    if argc == 2:
        show_config(ini)
    elif argc == 3:
        show_section(ini, sys.argv[2])
    elif argc == 4:
        show_key(ini, sys.argv[2], sys.argv[3])
    elif argc == 5:
        set_value(ini, sys.argv[2], sys.argv[3], sys.argv[4])
        #Écrire dans un fichier (Attention, dans la situation actuelle, les commentaires et les sauts de ligne seront supprimés)
        with open(INI_FILE, "w", encoding='utf8') as f:
            ini.write(f)
    else:
        usage()
        sys.exit(3)

    sys.exit(0)
#EOF

Recommended Posts

Comment utiliser le module ConfigParser
Comment utiliser le module optparse
Comment utiliser le générateur
Comment utiliser le décorateur
Comment utiliser la fonction zip
Comment utiliser Raspeye Relay Module Python
Comment utiliser le module de journalisation de Python
Comment utiliser le pipeline Spark ML
[Linux] Comment utiliser la commande echo
Comment utiliser le débogueur IPython (ipdb)
Comment utiliser le module externe de TouchDesigner Python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser TokyoTechFes2015
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser la bibliothèque C en Python
Comment utiliser la bibliothèque de dessins graphiques Bokeh
Comment utiliser l'API Google Cloud Translation
Comment utiliser l'API du guide des programmes NHK
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"