So hier ist einmal der komplette Code für den Wetterbericht
:
Code:
from xml.dom.minidom import *
import urllib
import Drucker as Drucker
# Drucker initialisieren
Drucker.Init()
# Linespace auf 1 Punkt setzen
Drucker.SetLineSpace(8)
# Liste fuer den Wetterbericht
# 1. Dimension = heute, 2. Dimension = naechster Tag
# 1. Element = Tag, 2. Element = Datum, 3. = Niedrigste Temperatur, 4. Element = Hoechste Temperatur, 5. Element = Wettersituation
Wetter = [["", "", "", "", ""] , ["", "", "", "", ""]]
# URL oeffnen und XML Daten einlesen
Baum = urllib.urlopen('http://weather.yahooapis.com/forecastrss?w=675964').read()
# XML Daten parsen und in Baumstruktur anordnen
Baum = parseString(Baum)
# Ort einlesen
Ort = Baum.getElementsByTagName('yweather:location')[0]
Stadt = Ort.attributes["city"].value
Land = Ort.attributes["country"].value
# Datum einlesen
Datum = Baum.getElementsByTagName('lastBuildDate')[0].firstChild.data
# Koordinaten auslesen
Geo_Lat = Baum.getElementsByTagName('geo:lat')[0].firstChild.data
Geo_Long = Baum.getElementsByTagName('geo:long')[0].firstChild.data
# Wetterdaten von heute einlesen
Today = Baum.getElementsByTagName('yweather:condition')[0]
# Wettertext einlesen
Wetterlage = Today.attributes["text"].value
# Temperatur in Fahrenheit einlesen, umrechnen und runden
Temperatur = float(Today.attributes["temp"].value)
Temperatur = round((Temperatur - 32.0) * (5.0 / 9.0) , 2)
# Daten in einer Liste speichern
for Counter in range(2):
# Wetterdaten fuer die beiden Tage einlesen
# Daten einlesen
Future = Baum.getElementsByTagName('yweather:forecast')[Counter]
# Daten verarbeiten
Wetter[Counter][0] = Future.attributes["day"].value
Wetter[Counter][1] = Future.attributes["date"].value
Wetter[Counter][2] = float(Future.attributes["low"].value)
Wetter[Counter][3] = float(Future.attributes["high"].value)
Wetter[Counter][4] = Future.attributes["text"].value
# Umrechnen der Temperatur in Grad Celsius
Wetter[Counter][2] = round((Wetter[Counter][2] - 32.0) * (5.0 / 9.0) , 2)
Wetter[Counter][3] = round((Wetter[Counter][3] - 32.0) * (5.0 / 9.0) , 2)
# Ausgabe
Drucker.Println("Wetterbericht fuer " + Stadt + " in ")
Drucker.Println(Land)
Drucker.Println("Letztes Update: ")
Drucker.Println(Datum)
Drucker.Println(" ")
Drucker.Println("Koordinaten")
Drucker.Println("Laengengrad: " + Geo_Lat)
Drucker.Println("Hoehengrad: " + Geo_Long)
Drucker.Println(" ")
Drucker.Println("Wetter heute")
Drucker.Println("Temperatur: " + str(Temperatur) + " C Celsius")
Drucker.Println("Max. Temperatur: " + str(Wetter[0][2]) + " C Celsius")
Drucker.Println("Min. Temperatur: " + str(Wetter[0][3]) + " C Celsius")
Drucker.Println("Wettersituation: " + Wetterlage)
Drucker.Println(" ")
Drucker.Println("Wetter am naechsten Tag")
Drucker.Println("Tag: " + Wetter[1][0])
Drucker.Println("Datum: " + Wetter[1][1])
Drucker.Println("Max. Temperatur: " + str(Wetter[1][2]) + " C Celsius")
Drucker.Println("Min. Temperatur: " + str(Wetter[1][3]) + " C Celsius")
Drucker.Println("Wetter: " + Wetter[1][4])
Drucker.Println(" ")
# Quelle angeben
Quelle = Baum.getElementsByTagName('link')[1].firstChild.data
Drucker.Println("Alle Daten stammen von ")
Drucker.Println(Quelle)
# Leerzeilen drucken
Drucker.Feed(4)
Und @ Tucow:
Hier ein Video (leider nicht so tolle Quali, da die Kamera im Videomodus nicht so lichtempfindlich ist):
https://www.dropbox.com/s/hmfsjrak28wi8ql/DSCF0874.MOV
Lesezeichen