Dépot Copyright

 CopyrightFrance.com

Cours Python

  1. Introduction à Python
  2. Ide Python
  3. Premier programme Python
  4. Les variables en Python
  5. Les commentaires en Python
  6. Les opérateurs Python
  7. Les fonctions en Python
  8. Structure If else... Python
  9. For While Python
  10. Formatage des chaines Python
  11. Les listes en Python
  12. Les tuples en Python
  13. Les dictionnaires en Python
  14. Les ensembles en Python
  15. POO et classes en Python
  16. Héritage en Python
  17. Le gestionnaire des packages pip
  18. Télécharger le cours complet
  19. Les modules en Python
  20. Le module OS
  21. Le module Platform
  22. Les exceptions en Python
  23. Les fichiers en Python
  24. Les fichiers ouverture & lecture
  25. Les fichiers ouverture & écriture
  26. Les fichiers CSV en Python
  27. Les Fichiers JSON En Python
  28. Fichier de configuration .ini
  29. Python & SQLite database
  30. DB Browser for SQLite
  31. Interface Graphique Tkinter
  32. Les Windgets Tkinter
  33. Bibliothèque d'images PILLOW
  34. Module de style tkinter.ttk
  35. Liste déroulante ttk Combobox
  36. le module filedialog
  37. Projet: Création éditeur de texte
  38. Bibliothèque graphique wxPython
  39. Bibliothèque graphique PyQt5
  40. Télécharger le cours complet
  41. Le module Math
  42. La bibliothèque matplotlib
  43. Le module Python statistics
  44. Bibliothèque Sympy
  45. Bibliothèques Numpy
  46. Bibliothèques Scipy
  47. Bibliothèques Pandas
  48. Bibliothèques Scikit Learn
  49. Bibliothèques TensorFlow
  50. Python Machine Learning
  51. Introduction à Django
  52. Installation de Django
  53. Premier Projet Django
  54. Interface administrateur
  55. Créer une application django
  56. Les modèles de django
  57. Exercices Python: les bases
  58. Exercices Python: les classes
  59. Exercices Python: les fichiers
  60. Tous les TP Python
  61. Création Editeur de Texte en Python Partie1
  62. Carnet d'adresse en Python
  63. Formation Python-partie1

Utilisateurs en ligne

Users: 23 Guests, 1 Robot

Annonces Google

 

ConfigParser - Travailler avec les fichiers de configuration Objectif: lire / écrire des fichiers de configuration par python est similaire aux fichiers Windows INI. Utilisez le module python ConfigParser pour gérer les fichiers de configuration modifiables par l'utilisateur pour une application python. Les fichiers de configuration sont organisés en sections et chaque section peut contenir des paires nom-valeur pour les données de configuration. L'interpolation de valeurs à l'aide de chaînes de formatage Python est également prise en charge, afin de générer des valeurs qui dépendent les unes des autres (particulièrement utile pour les URL et les chaînes de message).

 

1 – Le module configparser

Le langage Python est doté d’un module nommé configparser qui permet d’utiliser et manipuler les fichiers de configuration similaires aux fichiers Windows du type .ini

le module configparser pourra être utilisé pour gérer les fichiers de configurations modifiables par l’utilisateur au sein d’une application. Le contenu d’un fichier de configuration peut être organisé en sections contenant chacune des paramètres avec des valeurs associées. Plusieurs types de valeurs d’options sont pris en charge, y compris les entiers, les valeurs à virgule flottante et les booléens.

2  -Format du fichier de configuration

Le format de fichier utilisé par configparser est similaire à celui utilisé par les anciennes versions de Microsoft Windows. Il se compose d’une ou de plusieurs sections nommées, chacune pouvant contenir des options avec des noms et des valeurs.

  1. Les sections de fichier de configuration sont identifiées en recherchant les lignes commençant par [ et se terminant par ]. La valeur entre les crochets désigne le nom de la section et peut contenir tous les caractères sauf les crochets.
  2. Les options sont répertoriées une par ligne dans une section. La ligne commence par le nom de l’option, qui est séparée de la valeur par un signe deux-points ” : “ ou un signe égale  ” = “
  3. Les  commentaires : sont des lignes commençant par un point-virgule ” ; “ ou une dièse ” # “  et sont traitées comme des commentaires et ne sont pas visibles lors de l’accès par programme au contenu du fichier de configuration.

L’exemple suivant du fichier de configuration, comporte une section nommée settings avec trois options, host, username et password:

Exemple. configuration.ini

# paramètres de configuration du serveur 
[settings]
host :  127.0.0.1 
username :  root
password :  root

3 – Lecture de la valeur d’une option d’un fichier de configuration .ini en Python

Avec le langage Python on peut se servir du module configparser et la méthode read() de l’objet ConfigParser pour lire le fichier de configuration:

Exemple. Lecture du fichier configuration.ini en Python

from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini')

# Affichage de la valeur du paramètre 'host'
print(parser.get('settings', 'host'))

4 – Mettre à jour un paramètre

Pour mettre à jour un paramètre du fichier de configuration, on doit préalablement l’ouvrir en mode lecture et écriture et utiliser ensuite la méthode set() de la classe ConfigParser

Exemple. mettre à jour la valeur du paramètre ‘host’

# -*- coding: utf-8 -*- 
from configparser import ConfigParser 
parser = ConfigParser() 
parser.read('configuration.ini') 

# Ouverture du fichier de configuration en mode lecture et écriture
file = open('configuration.ini','r+')

# mettre à jours la valeur du paramètre 'host'
parser.set('settings', 'host',"'localhost'") 
parser.write(file) 
file.close()

Maintenant si vous ouvrez le fichier configuration.ini, vous allez constater que le paramètre host = 127.0.0.1 est devenu host =  localhost

5 – Lecture des sections d’un fichier de configuration

La méthode sections() de l’objet parser, permet de récupérer les sections du fichier de configuration sous forme d’une liste :

Exemple. configuration.ini

[settings]  
# paramètres de configuration du serveur  
host     : 127.0.0.1  
username : root  
password : root

[Safe_Mode] 
# http://php.net/safe-mode 
safe_mode = Off 
safe_mode_gid = on

[File_Uploads] 
# http://php.net/file-uploads 
file_uploads = On 
upload_tmp_dir = "c:/wamp/tmp" 
upload_max_filesize = 2M

Exemple. lecture des sections du fichier configuration.ini

from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini') 
sec = parser.sections() 
print(sec) # Affiche : ['settings', 'Safe_Mode', 'File_Uploads']

6 – Lire la liste des options avec la méthode options()

La méthode options() de l’objet ConfigParser, permet de récupérer la liste des options d’une section du fichier de configurations:

Exemple. Liste des options de la première section:

# -*- coding: utf-8 -*- 
from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini')
# pointer vers la première section 
sec = parser.sections()[0]
# obtenir la liste des options 
print(sec, parser.options(sec)) # Affiche: settings ['host', 'username', 'password']

Et en utilisant la boucle for, on peut obtenir toutes les sections avec leurs options :

Exemple. Liste de toutes les sections avec leurs options :

# -*- coding: utf-8 -*- 
from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini')

# Parcourt de toutes les sections
for sec in parser.sections():
    # parcourt des options des différentes sections
    print(sec, " : " , parser.options(sec))

Ce qui affiche à l’exécution :

settings : [‘host’, ‘username’, ‘password’]
Safe_Mode : [‘safe_mode’, ‘safe_mode_gid’]
File_Uploads : [‘file_uploads’, ‘upload_tmp_dir’, ‘upload_max_filesize’]

7 – Lecture totale avec la méthode items()

La méthode items(), permet de récupérer les noms des paramètres à avec leurs valeurs :

Exemple. récupération des paramètres et valeurs de la premières section

# -*- coding: utf-8 -*- 
from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini')

# Pointer vers la première section
sec = parser.sections()[0] 
print(sec, " : ")
for name, value in parser.items(sec):     
    print('  {} = {}'.format(name, value))

Affichage complet des sections avec leurs paramètres et valeurs :

# -*- coding: utf-8 -*- 
from configparser import ConfigParser
parser = ConfigParser() 
parser.read('configuration.ini')

# Parcourt des sections
for sec in parser.sections():     
    print(sec," : ") 
    # parcourt des paramètres et valeurs   
    for name, value in parser.items(sec):        
        print('  {} = {}'.format(name, value))

Ce qui affiche après exécution:

settings  : 
  host = 127.0.0.1
  username = root
  password = root
Safe_Mode  : 
  safe_mode = Off
  safe_mode_gid = on
File_Uploads  : 
  file_uploads = On
  upload_tmp_dir = "c:/wamp/tmp"
  upload_max_filesize = 2M

8 – Ajouter une section avec la méthode add_section()

Avec la méthode add_section() de la classe ConfigParser, on peut ajouter autant de sections qu’on souhaite, pour cela on doit préalablement ouvrir le fichier de configuration en mode lecture et écriture et utiliser ensuite la méthode set() de la classe ConfigParser afin de pouvoir définir et ajouter de nouvelles options à la section.

Exemple. Ajout d’une section nommée mysqld

# -*- coding: utf-8 -*- 
from configparser import ConfigParser 
parser = ConfigParser() 
parser.read('configuration.ini')

# Ouverture du fichier de configuration
file = open('configuration.ini','r+') 

# Ajout d'une nouvelle section mysqld
parser.add_section('mysqld') 
# Définition et ajout de nouvelles options
parser.set('mysqld', 'port', '3306') 
parser.set('mysqld', 'table_cache','64') 
parser.write(file) 
file.close()

Après exécution du code,  vous verrez une nouvelle section [mysqld] qui s’ajoute au fichier  configuration.ini:

[settings]
host = 127.0.0.1
username = root
password = root

[Safe_Mode]
safe_mode = Off
safe_mode_gid = on

[File_Uploads]
file_uploads = On
upload_tmp_dir = "c:/wamp/tmp"
upload_max_filesize = 2M

[mysqld]
port = 3306
table_cache = 64

e_uploads = On 
upload_tmp_dir = "c:/wamp/tmp" 
upload_max_filesize = 2M

 

 

Younes Derfoufi
CRMEF OUJDA

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload the CAPTCHA.