problème d'attribution d'un texte dans un widget text
Bonjour,
voila mon problème est le suivant. Je veux lire et écrire dans une fichier texte et pour cela j'e choisi de passer par le widget 'text' de Tkinter.
Voici mon code, je pense qu'il y a plusieurs soucis mais étant débutant, je n'arrive pas à en venir à bout:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| # -*- coding: UTF-8 -*-
from Tkinter import *
from os import *
def ouvrir ():
global fichier
mon_txt = 'c:/'+ Entree.get()+'.txt'
text1.configure(text = mon_txt)
if os.path.isfile(mon_txt) == True:
fichier = open(mon_txt, 'r')
zonetext.configure(text = fichier)
text1.configure(text = 'le fichier texte est chargé')
if os.path.isfile(mon_txt) == False:
fichier = open(mon_txt, 'w')
text1.configure(text = 'le fichier texte est créer')
def fermer ():
global fichier
enregistrer()
fichier.close()
fen1.destroy()
def enregistrer():
global fichier
fichier.write(zonetext.get(0.0,END))
fichier = ''
mon_txt = ''
fen1 = Tk()
Entree = Entry(fen1, text='Indiquez le fichier à ouvrir ou créer')
Entree.grid(row = 1, column =0)
text1 = Label(fen1, text='')
text1.grid(row = 0, column =0)
bouton_ouvrir = Button(fen1, text = 'Ouvrir', command = ouvrir)
bouton_ouvrir.grid(row = 1, column =1)
bouton_fermer = Button(fen1, text ='Fermer', command = fermer)
bouton_fermer.grid(row = 1, column =2)
bouton_enregistrer = Button(fen1, text='enregistrer', command = enregistrer)
bouton_enregistrer.grid(row = 1, column = 3)
zonetext = Text(fen1, height = 400, width = 400)
zonetext.grid(row =2, column =4, columnspan =4, padx=5, pady=5)
fen1.mainloop() |
Voici l'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "C:\Python25\traitement_text", line 9, in ouvrir
if os.path.isfile(mon_txt) == True:
NameError: global name 'os' is not defined
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "C:\Python25\traitement_text", line 19, in fermer
enregistrer()
File "C:\Python25\traitement_text", line 25, in enregistrer
fichier.write(zonetext.get(0.0,END))
AttributeError: 'str' object has no attribute 'write' |
A priori, le problème viendrait de os.path.isfile(mon_txt) == True mais je ne sais pas comment faire autrement
Merci d'avance
celui qui éclaire mon chemin
bonjour Haze,
ça y est, je pense avoir compris cette fois :lol: . Merci encore de prendre le temps de m'expliquer patiemment tout ça.
:king:
Je n'ai plus qu'à revoir mon algo.
Merci