Also in self.ergebnis ist doch schon die Zahl (oder objekt) ?
Und die eigentliche Ausgabe ist ja in der 57 Zeile und da wird doch keine __str__ methode aufgerufen ???????
Gruß
Code: Alles auswählen
from httplib import *
from re import *
from Tkinter import *
ausgabe = '''Die Ozonkonzentration der Luft
am Standort %s betr\xe4gt
%s Mikrogramm pro Kubikmeter
(gemessen in Bodenn\xe4he).''' #1
class Ozoncheck: #2
def __init__ (self, server, pfad, ort):
try:
self.ort = ort
verbindung = HTTPConnection(server) #3
verbindung.request('GET', pfad)
antwort = verbindung.getresponse()
self.htmltext = antwort.read()
verbindung.close()
self.ergebnis = self.auswerten()
except:
self.ergebnis = ''
def auswerten(self):
re1 = compile('<tr>.*?' + self.ort + '.*?</tr>') #4
re2 = compile('\d+</td></tr>')
re3 = compile('\d+')
zeile = re1.findall(self.htmltext)[0]
letztesStueck = re2.findall(zeile)[0]
return re3.findall(letztesStueck)[0]
def __str__(self):
return self.ergebnis
class Benutzungsoberflaeche:
def __init__(self):
meinfont = ('Arial', 10)
self.fenster = Tk()
self.ort = StringVar()
self.ergebnis = StringVar()
self.fenster.title('Ozon-Check')
self.frame = Frame(self.fenster)
Label(self.frame, font=meinfont,
text='Ort: ').pack(side=LEFT)
Entry(self.frame, font=meinfont,
textvariable=self.ort).pack(side=LEFT)
Button(self.frame, font=meinfont, text=' Ozon ',
command=self.ozoncheck).pack(side=LEFT, padx=5)
self.frame.pack(padx=5, pady=5)
Label(self.fenster, font=meinfont,height=4,
textvariable=self.ergebnis).pack()
self.fenster.mainloop()
def ozoncheck(self): #5
zahl = str(Ozoncheck('www.lanuv.nrw.de',
'/luft/immissionen/aktluftqual/eu_o3_akt.htm',
self.ort.get()))
if zahl:
self.ergebnis.set(ausgabe%(self.ort.get(), zahl))
else:
self.ergebnis.set( 'Ihre Anfrage konnte nicht \n bearbeitet werden.')
Benutzungsoberflaeche()