1 pièce(s) jointe(s)
Configparser - ok pour lire mais pour ecrire ?
Bonsoir,
Une petite question concernant le module configparser, j'ai un fichier de config que je dois lire, ca j'y arrive très bien, par contre, je dois y modifier une valeur et la sauvegarder.
Si j'ai bien compris ce module ne fonctionne pas de la même façon que le module "inifiles" sous delphi, il ne garde pas en mémoire le fichier après un config.read() par exemple, je ne peux pas simplement modifier une clef et le réécrire avec un ".write()"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #recupe configuration
try:
config = configparser.SafeConfigParser()
config1 = configparser.SafeConfigParser()
config1.read('gomails.cfg')
except:
messagebox.showerror("Attention", "Arret programme fichier gomails.cfg introuvable")
sys.exit()
try:
repertoire = config1['Fichier']['chemin']
adresse_serveur = config1['Serveur']['SAdresse']
port = config1['Serveur']['port']
Tmax = config1['Serveur']['taillemax']
user = config1['Emetteur']['EAdresse']
name = config1['Style']['Entete']
except:
messagebox.showerror("Attention", "Arret programme fichier gomails.cfg mal formate ou introuvable")
sys.exit() |
Il faut donc réécrire toutes les valeurs avant de le sauvegarder, soit, dans ma première version j'ai essayé de réécrire directement sur "config", mais lors de l'execution, python me disait que la section "Style" était déjà existante, bon allons, je me dis, je créé un deuxième module vierge (config1) dans lequel je vais créer mes sections et y recopier mes valeurs avant d'enregistrer le fichier, mais j'ai des erreurs comme quoi la variable n'est pas un string.
J'essaye donc de les convertir au moyen de "srt()" mais ca ne fonctionne pas non plus.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| config.add_section('Fichier')
config.add_section('Serveur')
config.add_section('Style')
config.add_section('Emetteur')
config.set('Style', 'test', 'Tesdfsghsfghsfghjsfghjsfgjsfjsghjs')
config.set('Fichier', 'chemin', str(repertoire))
config.set('Serveur', 'SAdresse', str(adresse_serveur))
config.set('Serveur', 'port', str(port))
config.set('Serveur', 'taillemax', str(Tmax))
config.set('Emetteur', 'EAdresse', str(user))
config.set('Style', 'Entete', str(name))
with open('gomails.cfg', 'wb') as conf_file:
config.write(conf_file) |
Ou est ce que ca cloche, dans ma déclaration des variables, si je prend un item d'un tableau normalement ca me le ressort pas en un string d'office ?
Merci
David