Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Kurswertelisten automatisiert erstellen

Daten aus dem Internet

Es gibt zahlreiche Webseiten im Internet, die Daten zur Entwicklung des DAX bereit stellen, so z.B. auch auf der Seite Yahoo! Finanzen. Hier ein Ausschnitt aus dieser Seite:

Entwicklung des DAX

Beachte hier insbesondere den Link, mit dem man die Daten aufbereitet für ein Tabellenkalkulationsprogramm herunterladen kann. Man erhält eine Datei table.csv, in der die Daten im CSV-Format dargestellt sind.

Date,Open,High,Low,Close,Volume,Adj Close
2015-06-30,11058.040039,11137.139648,10897.969727,10944.969727,131523600,10944.969727
2015-06-29,11404.709961,11409.80957,10964.240234,11083.200195,130184700,11083.200195
2015-06-26,11387.129883,11561.830078,11373.44043,11492.429688,91723700,11492.429688
2015-06-25,11410.620117,11594.240234,11352.400391,11473.129883,73555500,11473.129883
2015-06-24,11566.349609,11589.349609,11364.450195,11471.259766,91865500,11471.259766

Aufbereitung der Daten

Aus diesen Daten lässt sich mit einer Python-Funktion eine Liste mit den gewünschten Kurswerten erstellen.

def aktienkursListe(csvDatei):
    try:
        datei = open(csvDatei, 'r', encoding='iso-8859-1')
        liste = []
        for zeile in datei:
            jahr = zeile[0:4]
            if jahr != 'Date':
                daten = zeile.strip().split(',')
                kurs = round(float(daten[6]), 2)
                liste = liste + [kurs]
        datei.close()
        return liste
    except:
        return []

Mit einem Funktionsaufruf, bei dem man den Dateinamen mit den Rohdaten übergibt, erhält man die gewünschte Liste.

>>> aktienkursListe('table.csv')
[10944.97, 11083.2, 11492.43, 11473.13, 11471.26]

Aufgabe 1

Probiere das selbst aus. Erstelle so auch eine Liste mit allen Kursdaten des Jahres 2015.

Aufgabe 2

Teste auch die folgende Funktion. Was leistet sie? Warum macht es für viele Anwendungen Sinn, mit den hier erzeugten daten zu weiterzuarbeiten?

def aktienkursListeMitDatum(csvDatei):
    try:
        datei = open(csvDatei, 'r', encoding='iso-8859-1')
        liste = []
        for zeile in datei:
            jahr = zeile[0:4]
            if jahr != 'Date':
                daten = zeile.strip().split(',')
                datum = daten[0]
                kurs = round(float(daten[6]), 2)
                liste = liste + [(datum, kurs)]
        datei.close()
        return liste
    except:
        return []
X

Fehler melden

X

Suche