codice:
def CreaFile(self):
        Elenco=open("Elenco.html",W)
        Elenco.write("<html><body>")
        Elenco.write("<TABLE BORDER=1 CELLPADDING=2 CELLSPACING=2><TR><TD WIDTH=12%>Nome</TD>\
                     <TD WIDTH=12%>Cognome</TD><TD WIDTH=12%>E-Mail</TD><TD WIDTH=12%>Gruppo</TD><TD WIDTH=12%>Tel Casa</TD>\
                     <TD WIDTH=12%>Tel Uff</TD><TD WIDTH=12%>Tel Cell</TD><TD WIDTH=12%>Tel Fax</TD><TD WIDTH=12%>Note</TD></TR>")
        for x in self.Lista:
            y=self.Lista[x]
            Elenco.write("<TR>")
            for z in range(9):
                El=self.Database[y][z]
                if El=="":
                    El="//"
                elif El=="\n":
                    El="//"
                Elenco.write("<TD ALIGN=CENTER>%s</TD>" %(El))
            Elenco.write("</TR>")
    def Info(self):
        tkMessageBox.showinfo("Help","Questa è una rubrica realizzata con Tkinter(Python).\n"
                              "Cliccando con il destro su un E-Mail la si può modificare o cancellare.\n"
                              "Maggiori infomazioni nel readme.")
    def Scheda(self,Event):
        a=self.RubrList.curselection()
        b=self.RubrList.get(a)
        c=self.Lista[b]
        self.c=c
        InfoUT=Toplevel(self.ROOT)        
        Font=Rubrica.Font
        self.InfoUT=InfoUT
        Label(InfoUT,text="Nome:",font=Font).grid(row=0,column=0,sticky=NE+SW)
        Label(InfoUT,text="Cognome:",font=Font).grid(row=1,column=0,sticky=NE+SW)
        Label(InfoUT,text="E-Mail:",font=Font).grid(row=2,column=0,sticky=NE+SW)
        Label(InfoUT,text="Tel Casa:",font=Font).grid(row=3,column=0,sticky=W)
        Label(InfoUT,text="Tel Uff.:",font=Font).grid(row=4,column=0,sticky=W)
        Label(InfoUT,text="Tel Cell:",font=Font).grid(row=5,column=0,sticky=W)
        Label(InfoUT,text="Tel Fax:",font=Font).grid(row=6,column=0,sticky=W)
        Label(InfoUT,text="Gruppo:",font=Font).grid(row=7,column=0,sticky=NE+SW)
        Label(InfoUT,text="Note:",font=Font).grid(row=8,column=0,sticky=NE+SW)
        Label(InfoUT,text=self.Database[c][0],relief='ridge',font=Font).grid(row=0,column=1,sticky=NE+SW)#Nome
        Label(InfoUT,text=self.Database[c][1],relief='ridge',font=Font).grid(row=1,column=1,sticky=NE+SW)#Cognome
        Label(InfoUT,text=self.Database[c][2],relief='ridge',font=Font).grid(row=2,column=1,sticky=NE+SW)#email
        Label(InfoUT,text=self.Database[c][4],relief='ridge',font=Font).grid(row=3,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][5],relief='ridge',font=Font).grid(row=4,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][6],relief='ridge',font=Font).grid(row=5,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][7],relief='ridge',font=Font).grid(row=6,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][3],relief='ridge',font=Font).grid(row=7,column=1,sticky=NE+SW)#gruppo
        Label(InfoUT,text=self.Database[c][8],height=6,width=30,relief='ridge',font=Font).grid(row=8,column=1,sticky=NE+SW)#note
        Button(InfoUT,text="Ok",command=self.OK,font=Font).grid(row=9,column=0,sticky=NE+SW)
        Button(InfoUT,text="Elimina Profilo",command=self.Elimina,font=Font).grid(row=9,column=1,sticky=NE+SW)
        Button(InfoUT,text="Modifica",command=self.ModificaEM,font=Font).grid(row=2,column=2,sticky=NE+SW)#EMail
        Button(InfoUT,text="Modifica",command=self.Modifica_TC,font=Font).grid(row=3,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TU,font=Font).grid(row=4,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TCE,font=Font).grid(row=5,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TFX,font=Font).grid(row=6,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.ModificaG,font=Font).grid(row=7,column=2,sticky=NE+SW)#gruppo
        Button(InfoUT,text="Modifica",command=self.ModificaN,font=Font).grid(row=8,column=2,sticky=NE+SW)#note
        Label(InfoUT,relief='ridge').grid(row=0,rowspan=2,column=2,sticky=NE+SW)
    def Elimina(self):
        del self.Database[self.c]
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.InfoUT.destroy()
        self.CL.destroy()
        self.RubrList.destroy()
        self.Scrl.destroy()
        self.CreaFrabeB_a()
    def CreaInfo(self):
        c=self.c
        InfoUT=Toplevel(self.ROOT)
        Font=Rubrica.Font
        self.InfoUT=InfoUT
        Label(InfoUT,text="Nome:",font=Font).grid(row=0,column=0,sticky=NE+SW)
        Label(InfoUT,text="Cognome:",font=Font).grid(row=1,column=0,sticky=NE+SW)
        Label(InfoUT,text="E-Mail:",font=Font).grid(row=2,column=0,sticky=NE+SW)
        Label(InfoUT,text="Tel Casa:",font=Font).grid(row=3,column=0,sticky=W)
        Label(InfoUT,text="Tel Uff.:",font=Font).grid(row=4,column=0,sticky=W)
        Label(InfoUT,text="Tel Cell:",font=Font).grid(row=5,column=0,sticky=W)
        Label(InfoUT,text="Tel Fax:",font=Font).grid(row=6,column=0,sticky=W)
        Label(InfoUT,text="Gruppo:",font=Font).grid(row=7,column=0,sticky=NE+SW)
        Label(InfoUT,text="Note:",font=Font).grid(row=8,column=0,sticky=NE+SW)
        Label(InfoUT,text=self.Database[c][0],relief='ridge',font=Font).grid(row=0,column=1,sticky=NE+SW)#Nome
        Label(InfoUT,text=self.Database[c][1],relief='ridge',font=Font).grid(row=1,column=1,sticky=NE+SW)#Cognome
        Label(InfoUT,text=self.Database[c][2],relief='ridge',font=Font).grid(row=2,column=1,sticky=NE+SW)#email
        Label(InfoUT,text=self.Database[c][4],relief='ridge',font=Font).grid(row=3,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][5],relief='ridge',font=Font).grid(row=4,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][6],relief='ridge',font=Font).grid(row=5,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][7],relief='ridge',font=Font).grid(row=6,column=1,sticky=NE+SW)#tel
        Label(InfoUT,text=self.Database[c][3],relief='ridge',font=Font).grid(row=7,column=1,sticky=NE+SW)#gruppo
        Label(InfoUT,text=self.Database[c][8],height=6,width=30,relief='ridge',font=Font).grid(row=8,column=1,sticky=NE+SW)#note
        Button(InfoUT,text="Ok",command=self.OK,font=Font).grid(row=9,column=0,sticky=NE+SW)
        Button(InfoUT,text="Elimina Profilo",command=self.Elimina,font=Font).grid(row=9,column=1,sticky=NE+SW)
        Button(InfoUT,text="Modifica",command=self.ModificaEM,font=Font).grid(row=2,column=2,sticky=NE+SW)#EMail
        Button(InfoUT,text="Modifica",command=self.Modifica_TC,font=Font).grid(row=3,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TU,font=Font).grid(row=4,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TCE,font=Font).grid(row=5,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.Modifica_TFX,font=Font).grid(row=6,column=2,sticky=NE+SW)#tel
        Button(InfoUT,text="Modifica",command=self.ModificaG,font=Font).grid(row=7,column=2,sticky=NE+SW)#gruppo
        Button(InfoUT,text="Modifica",command=self.ModificaN,font=Font).grid(row=8,column=2,sticky=NE+SW)#note
        Label(InfoUT,relief='ridge').grid(row=0,rowspan=2,column=2,sticky=NE+SW)
    def ModificaEM(self):
        Modifica(self.InfoUT,"Modifica...")
        try:
            a=Modifica.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[2]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def Modifica_TC(self):
        Modifica(self.InfoUT,"Modifica...")
        try:
            a=Modifica.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[4]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def Modifica_TU(self):
        Modifica(self.InfoUT,"Modifica...")
        try:
            a=Modifica.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[5]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def Modifica_TCE(self):
        Modifica(self.InfoUT,"Modifica...")
        try:
            a=Modifica.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[6]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def Modifica_TFX(self):
        Modifica(self.InfoUT,"Modifica...")
        try:
            a=Modifica.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[7]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def ModificaG(self):
        ModificaG(self.InfoUT,"Modifica Gruppo...")
        try:
            a=ModificaG.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[3]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def ModificaN(self):
        ModificaN(self.InfoUT,"Modifica Note...")
        try:
            a=ModificaN.Nome
        except:
            return
        self.InfoUT.destroy()
        c=self.Database[self.c]
        c[8]=a
        self.Database[self.c]=c
        self.Database.close()
        self.Database=shelve.open("Database","c")
        self.CreaInfo()
    def OK(self):
        self.InfoUT.destroy()
        self.RubrList.destroy()
        self.CL.destroy()
        self.Scrl.destroy()
        self.CreaFrabeB_a() 
Rubrica()