Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erläuterung des ConfigParser des Python-Parsing-Konfigurationsmoduls

Detaillierte Erläuterung des ConfigParser des Python-Parsing-Konfigurationsmoduls

高洛峰
Freigeben: 2016-10-18 09:13:10
Original
1219 Leute haben es durchsucht

1. Grundlegende Lesekonfigurationsdatei

-read(filename) liest direkt den Inhalt der INI-Datei

-sections() ruft alle Abschnitte ab und gibt sie in Form einer Liste zurück

-options(section) Alle Optionen des Abschnitts abrufen

-items(section) Alle Schlüssel-Wert-Paare des Abschnitts abrufen

-get(section,option ) Rufen Sie den Abschnitt ab. Der Wert der Option im Abschnitt wird als String-Typ zurückgegeben.

-getint(section, option) Ruft den Wert der Option im Abschnitt ab und wird als int-Typ zurückgegeben. Es gibt auch entsprechende getboolean() und getfloat()-Funktionen.

2. Grundlegende Schreibkonfigurationsdatei

-add_section(section) Einen neuen Abschnitt hinzufügen

-set(section, option, value) zur Option im Abschnitt Um Einstellungen vorzunehmen, Sie müssen write aufrufen, um den Inhalt in die Konfigurationsdatei zu schreiben.

3. Grundlegendes Beispiel

test.conf

[sec_a] 
a_key1 = 20 
a_key2 = 10 
   
[sec_b] 
b_key1 = 121 
b_key2 = b_value2 
b_key3 = $r 
b_key4 = 127.0.0.1
Nach dem Login kopieren

parse_test_conf.py

import ConfigParser 
cf = ConfigParser.ConfigParser() 
#read config 
cf.read("test.conf") 
# return all section 
secs = cf.sections() 
print 'sections:', secs 
   
opts = cf.options("sec_a") 
print 'options:', opts 
   
kvs = cf.items("sec_a") 
print 'sec_a:', kvs 
   
#read by type 
str_val = cf.get("sec_a", "a_key1") 
int_val = cf.getint("sec_a", "a_key2") 
   
print "value for sec_a's a_key1:", str_val 
print "value for sec_a's a_key2:", int_val 
   
#write config 
#update value 
cf.set("sec_b", "b_key3", "new-$r") 
#set a new value 
cf.set("sec_b", "b_newkey", "new-value") 
#create a new section 
cf.add_section('a_new_section') 
cf.set('a_new_section', 'new_key', 'new_value') 
   
#write back to configure file 
cf.write(open("test.conf", "w"))
Nach dem Login kopieren

Terminalausgabe abrufen:

sections: ['sec_b', 'sec_a'] 
options: ['a_key1', 'a_key2'] 
sec_a: [('a_key1', "i'm value"), ('a_key2', '22')] 
value for sec_a's a_key1: i'm value 
value for sec_a's a_key2: 22
Nach dem Login kopieren

Aktualisierte Testkonfiguration

[sec_b] 
b_newkey = new-value 
b_key4 = 127.0.0.1 
b_key1 = 121 
b_key2 = b_value2 
b_key3 = new-$r 
   
[sec_a] 
a_key1 = i'm value 
a_key2 = 22 
   
[a_new_section] 
new_key = new_value
Nach dem Login kopieren

4. Das ConfigParser-Modul von Python definiert 3 Klassen für die Bearbeitung von INI-Dateien. Dies sind RawConfigParser, ConfigParser und SafeConfigParser. RawCnfigParser ist die einfachste Klasse zum Lesen von INI-Dateien. ConfigParser und SafeConfigParser unterstützen das Parsen von %(value)s-Variablen.

Konfigurationsdatei test2.conf festlegen

[portal] 
url = http://%(host)s:%(port)s/Portal 
host = localhost 
port = 8080
Nach dem Login kopieren

RawConfigParser verwenden:

import ConfigParser 
  
cf = ConfigParser.RawConfigParser() 
  
print "use RawConfigParser() read" 
cf.read("test2.conf") 
print cf.get("portal", "url") 
  
print "use RawConfigParser() write" 
cf.set("portal", "url2", "%(host)s:%(port)s") 
print cf.get("portal", "url2")
Nach dem Login kopieren

Terminalausgabe abrufen:

use RawConfigParser() read 
http://%(host)s:%(port)s/Portal 
use RawConfigParser() write 
%(host)s:%(port)s
Nach dem Login kopieren

Verwenden Sie stattdessen ConfigParser:

import ConfigParser 
  
cf = ConfigParser.ConfigParser() 
  
print "use ConfigParser() read" 
cf.read("test2.conf") 
print cf.get("portal", "url") 
  
print "use ConfigParser() write" 
cf.set("portal", "url2", "%(host)s:%(port)s") 
print cf.get("portal", "url2")
Nach dem Login kopieren

Terminalausgabe abrufen:

use ConfigParser() read 
http://localhost:8080/Portal 
use ConfigParser() write 
localhost:8080
Nach dem Login kopieren

Verwenden Sie stattdessen SafeConfigParser:

import ConfigParser 
  
cf = ConfigParser.SafeConfigParser() 
  
print "use SafeConfigParser() read" 
cf.read("test2.conf") 
print cf.get("portal", "url") 
  
print "use SateConfigParser() write" 
cf.set("portal", "url2", "%(host)s:%(port)s") 
print cf.get("portal", "url2")
Nach dem Login kopieren

Terminalausgabe abrufen (der Effekt ist der gleiche wie bei ConfigParser):

use SafeConfigParser() read 
http://localhost:8080/Portal 
use SateConfigParser() write 
localhost:8080
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage