Ich beginne mit Python quasi seit ein paar Tagen, gewisse "einfache" Grundlagen bekomme ich hin, jedoch hab ich "arbeitsbedingt" ein paar Herausforderungen zu meistern:
jeden Tag bekomme ich von meinem EVU Lastgangdaten in Form von 4 csv Dateien. Darin enthalten sind Zählerstände mit einer 15minütigen Intervall-Ablesung für genau einen Tag.
Das Jahr 2013 ist nun um, und ich möchte diese in eine SQL db eintragen, um Auswertungen und sonstige "Controlling"-Aufgaben damit erledigen.
Folgende Gegebenheiten:
Dateinamen:
Firma_20120502_V01.csv
Firma_20120502_V02.csv
Firma_20120502_V03.csv
Firma_20120502_V04.csv
Inhalt einer Datei:
Code: Alles auswählen
Kundenname:;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule;;Stadtverwaltung Realschule
Kanal:;Zählernummer aus 33 Zeichen#1-1:1.29.0;;Zählernummer aus 33 Zeichen#1-1:1.29.0;;Zählernummer aus 33 Zeichen#1-1:2.29.0;;Zählernummer aus 33 Zeichen#1-1:2.29.0;;Zählernummer aus 33 Zeichen#1-1:3.29.0;;Zählernummer aus 33 Zeichen#1-1:3.29.0;;Zählernummer aus 33 Zeichen#1-1:4.29.0;;Zählernummer aus 33 Zeichen#1-1:4.29.0
Datum Uhrzeit;Wert[kWh];Status;Wert[kWh];Status;Wert[kWh];Status;Wert[kWh];Status;Wert[kvarh];Status;Wert[kvarh];Status;Wert[kvarh];Status;Wert[kvarh];Status
02.05.12 00:15;4,59375;;4,59375;;0;;0;;2,68;;2,68;;0;;0;
02.05.12 00:30;4,4575;;4,4575;;0;;0;;2,56125;;2,56125;;0;;0;
02.05.12 00:45;5,38125;;5,38125;;0;;0;;2,0125;;2,0125;;0;;0;
02.05.12 01:00;4,28;;4,28;;0;;0;;2,28125;;2,28125;;0;;0;
02.05.12 01:15;5,57875;;5,57875;;0;;0;;1,7925;;1,7925;;0;;0;
02.05.12 01:30;5,55375;;5,55375;;0;;0;;1,69375;;1,69375;;0;;0;
02.05.12 01:45;5,27875;;5,27875;;0;;0;;1,52125;;1,52125;;0;;0;
02.05.12 02:00;4,935;;4,935;;0;;0;;1,64625;;1,64625;;0;;0;
02.05.12 02:15;5,13625;;5,13625;;0;;0;;1,49625;;1,49625;;0;;0;Zählerwechsel, Neuer Eintrag für eine Photovoltaik-Anlage, etc.
Dies erschwert natürlich ein einfaches auslesen und eintragen in die db aus meiner Sicht. Insgesamt für ein Jahr habe ich nunmehr 1287 Dateien erhalten. Diese manuell in eine Datenbank einzutragen ist natürlich unendlich langwierig und kann auch kaum ausgeführt werden.
Da die Eintragung automatisiert werden soll, habe ich mir folgende Überlegungen gemacht:
- die csv Dateien werden bereits automatisch in einen bestimmten Ordner abgespeichert. Dateinamen wie oben beschrieben.
Jetzt die Python-Aufgabe:
- einlesen aller Dateinamen und prüfen, ob diese bereits in abgearbeitet.csv enthalten sind.
- wenn nicht, alle Dateien in db schreiben ohne die Kopfzeilen (SQL db wurde bereits erstellt)
- Kopfzeilen auslesen (Kundenname und Zählernummer vergl. und passende Einträge in die db schreiben)
- geschriebene Dateinamen in die Liste abgearbeitet.csv aufnehmen.
- Script soll "händisch" gestartet werden
--> Nun meine Frage an die Profis:
- ist die Python Aufgabenstellung so in Ordnung, oder würdet ihr mir eine andere Abarbeitung empfehlen?
- wie soll ich die Daten einlesen? - per csvreader oder mit anderen Mitteln? - wie beschrieben, handelt es sich "einmalig" um etwa 1287 Dateien. Danach wird das Script eher "sporadisch" ausgeführt.
Daten kommen per Mail -> 2-3x im Monat wird per VBA der Anhang gespeichert - dann könnte man das Script ausführen. Vorausgesetzt, man ist in der Fa. und mit dem SQL Server verbunden.
Daten werden alle "ZENTRAL" gespeichert.
Ich wäre daher froh, wenn mir jemand einen Lösungsweg aufzeigen kann, wie man an die Sache herangehen sollte.
Komplette Lösungen will ich nicht erhalten, sondern ich will auf diesem Wege Python erlernen. Learning by Doing ist die beste Methode.
Vielen Dank,
J.
