Ich habe das ConfigParser-Modul untersucht, das die Konfigurationsdatei (INI-Datei) verarbeitet.
Python bietet ConfigParser, ein Modul, das standardmäßig INI-Dateien lesen und schreiben kann.
13.2. ConfigParser - Konfigurationsdatei-Syntaxanalysator - Python 2.7ja1-Dokumentation
Also habe ich das folgende Tool als Beispiel erstellt. Läuft unter Python 2.7.
check_config.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
check_config.py
Dienstprogramm zum Überprüfen der INI-Datei
Hinweis!
Die Fehlerprüfung ist schlampig.
'''
import ConfigParser
import os
import sys
def show_config(ini):
'''
Alle Inhalte der Einstellungsdatei anzeigen (ausgenommen Kommentare)
'''
for section in ini.sections():
print '[%s]' % (section)
show_section(ini, section)
return
def show_section(ini, section):
'''
Zeigen Sie den Inhalt eines bestimmten Abschnitts der Konfigurationsdatei an
'''
for key in ini.options(section):
show_key(ini, section, key)
return
def show_key(ini, section, key):
'''
Zeigen Sie den Inhalt eines bestimmten Schlüsselelements (einer bestimmten Eigenschaft) in einem bestimmten Abschnitt der Einstellungsdatei an
'''
print '%s.%s =%s' % (section, key, ini.get(section, key))
return
def set_value(ini, section, key, value):
'''
Ändern Sie den Inhalt eines bestimmten Schlüsselelements (einer bestimmten Eigenschaft) in einem bestimmten Abschnitt der Einstellungsdatei
'''
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)
#Konfigurationsdatei lesen
INI_FILE = sys.argv[1]
ini = ConfigParser.SafeConfigParser()
if os.path.exists(INI_FILE):
ini.read(INI_FILE)
else:
sys.stderr.write('%s nicht gefunden' % 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])
#In eine Datei schreiben (Achtung! In der aktuellen Situation werden Kommentare und Zeilenumbrüche gelöscht)
f = open(INI_FILE, "w")
ini.write(f)
f.close()
else:
usage()
sys.exit(3)
sys.exit(0)
#EOF
Nun, wie Sie aus dem Quellcode sehen können, w
python
python check_config.py
Wenn kein Argument angegeben ist. Verwendung anzeigen (). Es ist eine versprochene Art von UNIX-Befehlen.
python
python check_config.py inifile
Wenn es nur ein Argument gibt. Geben Sie im ersten Argument den Dateinamen der INI-Datei an. Zeigen Sie den Inhalt von inifile an.
python
python check_config.py inifile section
Wenn es zwei Argumente gibt. Geben Sie im zweiten Argument den Abschnitt der INI-Datei an. Zeigen Sie den Inhalt eines bestimmten Abschnitts einer Inifile an.
python
python check_config.py inifile section key
Wenn es drei Argumente gibt. Geben Sie im dritten Argument das Schlüsselelement (den Schlüssel) eines bestimmten Abschnitts der INI-Datei an. Zeigen Sie den Inhalt eines bestimmten Schlüsselelements (Schlüssels) eines bestimmten Abschnitts einer Inifile an.
python
python check_config.py inifile section key value
Wenn es vier Argumente gibt. Geben Sie im 4. Argument den Inhalt (Wert) an, der für das Schlüsselelement des spezifischen Abschnitts der INI-Datei geändert werden soll. Nur dieser Vorgang schreibt die INI-Datei neu. Ein bestimmtes Schlüsselelement (Schlüssel) eines bestimmten Abschnitts von inifile wurde in den Inhaltswert geändert.
Heutzutage ist die Python2-Version lächerlich, deshalb haben wir auch die Python3-Version vorbereitet.
Läuft unter Python 3.5.
check_config.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
check_config.py
Dienstprogramm zum Überprüfen der INI-Datei
Hinweis!
Die Fehlerprüfung ist schlampig.
'''
import configparser
import os
import sys
def show_config(ini):
'''
Alle Inhalte der Einstellungsdatei anzeigen (ausgenommen Kommentare)
'''
for section in ini.sections():
print ("[" + section + "]")
show_section(ini, section)
return
def show_section(ini, section):
'''
Zeigen Sie den Inhalt eines bestimmten Abschnitts der Konfigurationsdatei an
'''
for key in ini.options(section):
show_key(ini, section, key)
return
def show_key(ini, section, key):
'''
Zeigen Sie den Inhalt eines bestimmten Schlüsselelements (einer bestimmten Eigenschaft) in einem bestimmten Abschnitt der Einstellungsdatei an
'''
print (section + "." + key + " = " + ini.get(section, key))
return
def set_value(ini, section, key, value):
'''
Ändern Sie den Inhalt eines bestimmten Schlüsselelements (einer bestimmten Eigenschaft) in einem bestimmten Abschnitt der Einstellungsdatei
'''
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)
#Konfigurationsdatei lesen
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 + "Nicht gefunden")
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])
#In eine Datei schreiben (Achtung! In der aktuellen Situation werden Kommentare und Zeilenumbrüche gelöscht)
with open(INI_FILE, "w", encoding='utf8') as f:
ini.write(f)
else:
usage()
sys.exit(3)
sys.exit(0)
#EOF
Recommended Posts