salut
mise a jour du programme
cette fois il y a une interface graphique 🙂
#!/usr/bin/env python
# -*- coding:Utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
import os
class FichierQif:
def __init__(self,chemin):
self.chemin=chemin
return
def corriger(self):
#print "Lecture en cours"
fichier_entree=open(self.chemin,'r')
ligne=fichier_entree.readlines()
self.version_corrigee=[]
#print "Correction en cours"
for txt in ligne:
if txt[0]=="P":
txt="M"+txt[1:]
if txt[0]=="T":
txt=txt.replace("+","")
self.version_corrigee.append(str(txt))
fichier_entree.close()
#print "Correction terminée"
return
def ecrire(self,fichier_sortie):
#print "Ecriture en cours"
fichier_sortie=open(str(fichier_sortie),'w')
for txt in self.version_corrigee:
fichier_sortie.write(str(txt))
fichier_sortie.close()
#print "Ecriture terminée"
return
class Interface :
def __init__(self):
self.filename,self.nom_fichier,self.extension=None,None,None
# fenetre
self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.fenetre.set_title("correctQif")
self.fenetre.set_default_size(400,400)
self.fenetre.set_position(gtk.WIN_POS_CENTER)
self.fenetre.connect("destroy", gtk.main_quit)
# label
chaine_haut="<b>Programme pour corriger les fichiers .qif défectueux de\n Boursorama, Fortunéo et du Crédit Mutuel de Bretagne</b>"
self.texte_haut = gtk.Label(chaine_haut) # on crée un label
self.texte_haut.set_use_markup(True)
self.texte_milieu = gtk.Label("En attente de sélection de fichier") # on crée un label
self.texte_bas = gtk.Label("") # on crée un label
# bouton
self.bouton_selection_fichier = gtk.Button('Choisir le fichier')
self.bouton_selection_fichier.set_border_width(10)
self.bouton_selection_fichier.connect("clicked", self.ouvrir_fichier )
self.bouton_correction_fichier = gtk.Button('Corriger le fichier')
self.bouton_correction_fichier.set_border_width(10)
self.bouton_correction_fichier.connect("clicked", self.corriger_fichier )
# grille
self.grille = gtk.VBox(homogeneous=True, spacing=0)
self.grille.pack_start(self.texte_haut)
self.grille.pack_start(self.bouton_selection_fichier)
self.grille.pack_start(self.texte_milieu)
self.grille.pack_start(self.bouton_correction_fichier)
self.grille.pack_start(self.texte_bas)
self.fenetre.add(self.grille)
#
self.fenetre.show_all()
return
def corriger_fichier(self,widget):
if self.filename :
if self.extension.lower()==".qif":
fichier_qif=FichierQif(self.filename)
fichier_qif.corriger()
fichier_sortie=self.nom_fichier+"_correct.qif"
fichier_qif.ecrire(fichier_sortie)
self.texte_bas.set_text("<big><span foreground=\"green\">Correction terminée</span></big>")
self.texte_bas.set_use_markup(True)
self.filename,self.nom_fichier,self.extension=None,None,None
else:
self.texte_bas.set_text("<big><span foreground=\"red\">Mauvais fichier</span></big>")
self.texte_bas.set_use_markup(True)
return
def ouvrir_fichier(self,widget) :
self.texte_bas.set_text("")
dialogue = gtk.FileChooserDialog("Sélection fichier .qif",
None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialogue.set_default_response(gtk.RESPONSE_OK)
pathname=os.getcwdu()
dialogue.set_current_folder(pathname)
reponse = dialogue.run()
if reponse == gtk.RESPONSE_OK:
self.filename=dialogue.get_filename()
self.nom_fichier,self.extension=os.path.splitext(self.filename)
print self.filename
self.texte_milieu.set_text(self.filename)
elif reponse == gtk.RESPONSE_CANCEL:
print 'On ferme, pas de fichier sélectionné'
dialogue.destroy()
return
if __name__ == "__main__":
Interface()
gtk.main()
pour utiliser le programme
1 -copier coller le texte dans un fichier que l'on nomme correcQif.py par exemple
2 - clic droit sur le fichier , aller dans les propriétés et rendre le fichier executable
3 - double clique sur le fichier, l'interface graphique se lancera toute seule