J'ai étudié le module ConfigParser qui gère le fichier de configuration (fichier ini).
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
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
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.
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