Heim >Backend-Entwicklung >PHP-Tutorial >[Python]ConfigParser-Modul

[Python]ConfigParser-Modul

巴扎黑
巴扎黑Original
2016-11-21 15:30:551013Durchsuche

1 Vorwort
Vor kurzem habe ich die Sicherung und Wiederherstellung von MySQL-Datenbankinstanzen untersucht. Die alte Datenkonfiguration und die my.cnf-Konfiguration der neuen Instanz stimmen nicht überein ob der Parameter innodb_data_file_path geändert wurde. Wie analysiere ich meine.cnf? Deshalb habe ich das von Python bereitgestellte ConfigParser-Modul studiert. Dieses Modul kann Lese- und Änderungsvorgänge für allgemeine Konfigurationsdateien abschließen und erfüllt im Wesentlichen die Anforderungen.
2 Verwendung
2.1 Format der Konfigurationsdatei
Die Konfigurationsdatei besteht hauptsächlich aus Abschnittsbereich. Sie können Option=Wert oder Option:Wert im Abschnitt verwenden, um Parameter zu konfigurieren.

[Abschnitt1-Name]

option1=Wert 1

....

optionN= Wert N

[Abschnitt2-Name]

Option1=Wert 1

....

optionN=valueN

Das übliche my.cnf-Format ist wie folgt

[mysqld]

innodb_log_files_in_group = 2

innodb_page_size = 16384

innodb_log_block_size = 512

innodb_data_file_path = ibdata1:2G:autoextend

innodb_log_file_size =. 53687091 2

2.2 ConfigParser-Modul
Das ConfigParser-Modul von Python definiert drei Klassen: RawCnfigParser, ConfigParser, SafeConfigParser. Unter diesen ist RawCnfigParser die grundlegendste Klasse zum Lesen von Konfigurationsdateien.
Dieser Artikel verwendet hauptsächlich eigene Erweiterungen Als Beispiel wird die ConfigParser-Klasse vorgestellt. Zu den Vorgängen des ConfigParser-Moduls gehören hauptsächlich:
a Initialisieren einer ConfigParser-Instanz
b Lesen der Konfiguration
c Ändern der Konfiguration
Gängige Methoden zum Lesen von Konfigurationsdateien

cf.read(filename) Liest den Inhalt der Konfigurationsdatei

cf.sections() Alle Abschnitte abrufen und in Form einer Liste zurückgeben

vgl. Optionen(Abschnitt) Ruft alle Optionen unter dem angegebenen Abschnitt ab

cf.items(Abschnitt) Ruft alle Schlüssel-Wert-Paare unter dem angegebenen Abschnitt ab und gibt sie in Form eines Tupels zurück

cf.get( section, option) Ruft den Wert der Option im angegebenen Abschnitt ab und gibt ihn als Zeichenfolgentyp zurück

cf.getint(section, option) Ruft den Wert von ab Option im angegebenen Abschnitt und gibt sie als int-Typ

cf.has_option(section,option) zurück. Überprüfen Sie, ob unter dem Abschnitt eine angegebene Option vorhanden ist. Geben Sie „True“ zurück, falls vorhanden, andernfalls „False“

cf.has_section(section) Überprüfen Sie, ob ein Abschnitt vorhanden ist. Geben Sie ihn zurück, wenn er „True“ ist, und geben Sie „False“ nicht zurück. add_section(section) Einen neuen Abschnitt zur Konfigurationsdatei hinzufügen


cf.set(section, option, value) Option im Abschnitt festlegen


cf.remove_section( Abschnitt) Löschen Sie den angegebenen Abschnitt


cf.remove_option(section , option) Löschen Sie die Option im angegebenen Abschnitt


Beachten Sie, dass Sie zum Ändern der Konfigurationsdatei Folgendes tun müssen Rufen Sie write auf, um den Inhalt in die Konfigurationsdatei zu schreiben.

2.3 Beispiel

Klicken Sie (hier), um es zu reduzieren oder zu öffnen

#!/usr/bin/python2.6

#coding:utf8


import ConfigParser


old_mycnf_file='backup-my.cnf'


new_mycnf_file='my.cnf'


cf =ConfigParser.ConfigParser()


cf.read(new_mycnf_file)


sec=cf.sections()


print 'sections:' , sec


opts = cf.options("mysqld")


print 'options:', opts


kvs = cf.items("mysqld")


für kv in kvs:


print kv


innodb_data_file_path=cf.get('mysqld','innodb_data_file_path')


innodb_log_file_size=cf.get('mysqld','innodb_log_file_size')


print 'innodb_data_file_path: ',innodb_data_file_path


print 'innodb_log_file_size :',innodb_log_file_size


print „Nach der Änderung“


cf.set('mysqld', 'innodb_data_file_path','ibdata1:1G:autoextend')


cf.write(open(new_mycnf_file, "w"))


cf.read(new_mycnf_file)

InnoDB_DATA_FILE_PATH = CF.GET ('MySQLD', 'Innodb_data_file_path')

PRINT 'Innodb_file_path:', InnoDB_DATA_F ILE_PATH


yangyidba: Test Yangyi $ Python writecnf. py


Abschnitte: ['mysqld']

Optionen: ['innodb_log_files_in_group', 'innodb_page_size', 'innodb_log_block_size', 'innodb_data_file_path', 'innodb_log_file_size', 'ibdata1']


('innodb_log_files_in_group', '2')


('innodb_page_size', '16384')


( 'innodb_log_block_size', '512')


('innodb_data_file_path', 'ibdata1:2G:autoextend')


('innodb_log_file_size', '536870912')


('ibdata1', '2g:autoextend = ibdata1:2G:autoextend')

innodb_data_file_path : ibdata1:1G:autoextend

innodb_log_file_size : 536870912

Nach der Änderung

innodb_data_file_path : ibdata1:1G:autoextend

Drei Zusammenfassung
Gemäß den vom ConfigParser-Modul bereitgestellten Funktionen kann es grundsätzlich erfüllt werden die Anforderungen der täglichen Arbeit an Konfigurationsdatei-Änderungsvorgängen. Ausführlichere Informationen finden Sie in der offiziellen Dokumentation.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn