Maison >développement back-end >Tutoriel Python >Explication détaillée du fichier de configuration ConfigParser de Python

Explication détaillée du fichier de configuration ConfigParser de Python

巴扎黑
巴扎黑original
2017-09-04 13:57:121748parcourir

1. Le fichier de configuration de lecture de base

-read(filename) lit directement le contenu du fichier ini

-sections() pour obtenir toutes les sections et les lister Le formulaire renvoie

-options(section) pour obtenir toutes les options de la section

-items(section) pour obtenir toutes les paires clé-valeur de la section

-get(section ,option ) Obtenez la valeur de l'option dans la section et renvoyez-la sous forme de type chaîne

-getint(section, option) Obtenez la valeur de l'option dans la section et renvoyez-la sous forme de type int. Il existe également des getboolean() correspondants. et les fonctions getfloat().

2. Fichier de configuration d'écriture de base

-add_section(section) Ajouter une nouvelle section

-set( section, option, value ) Pour définir l'option dans la section, vous devez appeler write pour écrire le contenu dans le fichier de configuration.

3. Exemple de base

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

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"))

Obtenir Sortie du terminal :

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

Test.conf mis à jour

[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

4. Le module ConfigParser de Python définit trois classes pour fonctionner sur les fichiers INI. Il s'agit respectivement de RawConfigParser, ConfigParser et SafeConfigParser. RawCnfigParser est la classe de lecture de fichiers INI la plus basique. ConfigParser et SafeConfigParser prennent en charge l'analyse des variables %(value)s.

Définir le fichier de configuration test2.conf

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

Utiliser RawConfigParser :

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")

Obtenir la sortie du terminal :

use RawConfigParser() read 
http://%(host)s:%(port)s/Portal 
use RawConfigParser() write 
%(host)s:%(port)s

Utiliser ConfigParser à la place :

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")

Obtenez la sortie du terminal :

use ConfigParser() read 
http://localhost:8080/Portal 
use ConfigParser() write 
localhost:8080

Utilisez plutôt 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")

Obtenez la sortie du terminal (l'effet est le même que celui de ConfigParser) :

use SafeConfigParser() read 
http://localhost:8080/Portal 
use SateConfigParser() write 
localhost:8080

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn