====== Challenge 2: CSV-Dateien, Suchen/Ersetzen mit NotePad++ ====== Eine CSV-Datei ist eine Text-Datei, die mit jedem Text-Editor (nicht Word!) bearbeitet werden kann. Eine solche Datei enthält zeilenweise die Einträge einer Tabelle, die durch Kommas getrennt sind (CSV steht für **Comma separated value**). Das Problem ist, dass in Deutschland ein Dezimalkomma anstatt eines Dezimalpunktes verwendet wird. Darum wird in der deutschen Version von Excel der Strichpunkt ';' als Trennzeichnen verwendet. Beim Export der persönlichen Daten von Netflix erhält man eine CSV-Datei, deren Einträge durch Kommas getrennt sind und darum lässt sich die Datei nicht ohne Weiteres importieren. Ziel dieser Challenge ist es, dass Sie eine solche Datei selbständig anpassen können, damit der Import in Excel klappt. * Speichern Sie folgende Datei im ''challenges''-Ordner (unter genau diesem Namen): {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:komma01.csv}} * Öffnen Sie die Datei in Excel und stellen Sie fest, dass die Einträge nicht wie gewünscht sind. Die ganze Zeile steht jeweils in der ersten Zelle. [[https://web.microsoftstream.com/video/319be1a3-d698-4d94-aca4-c0054b0165cd|Video-Hilfe]]. * Starten Sie NotePad++ und arrangieren Sie die Fenster wieder so, dass der Browser und der Text-Editor (NotePad++) sichtbar sind. * Öffnen Sie die CSV-Datei ''komma01.csv'' in NotePad++ (Datei->Öffnen). [[https://web.microsoftstream.com/video/4dfd0f4c-e4b0-432e-bd76-1b8ad3e7f10d|Video-Hilfe]] * Lassen Sie alle Kommas durch Strichpunkte ersetzen und speichern Sie die Datei und dem neuen Namen ''strichpunkt01.csv'' (exakt genau so) ebenfalls im Ordner ''challenges''. [[https://web.microsoftstream.com/video/fce62442-aae2-4a7d-bf2f-802a64573f2e|Video-Hilfe]]. * Öffnen Sie die neue Datei in Excel und berechnen Sie die Summe aller Zahlen in der Tabelle und überprüfen Sie, ob diese 12345 beträgt. [[https://web.microsoftstream.com/video/78c66bfc-262a-4074-92f2-3bb7e04fc015|Video-Hilfe]]. ===== Was wenn schon Strichpunkte enthalten sind? ===== https://web.microsoftstream.com/video/4dfd0f4c-e4b0-432e-bd76-1b8ad3e7f10d * Speichern Sie die Datei {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:komma02.csv}} in den Ordner ''challenges''. * Öffnen Sie die Datei mit NotePad++. * Einfach alle Kommas durch Strichpunkte zu ersetzen, funktioniert hier nicht. Warum? Wenn Sie nicht verstehen warum, probieren Sie es aus und öffnen dann die neue Datei in Excel. * Sie müssen erst die Strickpunkte durch ein anderes geeignetes Zeichen ersetzen, z.B. den Bodenstrich (Underscore) ''_''. Ein geeignetes Zeichen ist eines, das sonst nicht in der Datei verwendet wird. * Speichern Sie die korrigierte Datei unter dem Namen ''strichpunkt02.csv'' und überprüfen Sie, dass die Datei korrekt in Excel geladen wird. * Berechnen Sie in Excel Summe aller Film-Längen. Es sollte 1300 sein. ===== Schluss ===== * Speichern Sie die Datei {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge02csv.py}} ebenfalls im Ordner ''challenges''. * Führen Sie in TigerJython nochmals das Programm ''evaluator.py'' aus, um zu überprüfen, dass alle Dateien einen korrekten Namen haben und präsent sind (der Inhalt der Dateien wird nicht überprüft). * Lesen Sie untenstehende Info-Box zu CSV-Dateien noch durch. * CSV ist ein schlecht spezifiziertes Datei-Format und kann im schlimmsten Fall ein Sicherheitsrisiko darstellen, weil Excel (aus welchem Grund auch immer) auch Formeln als solche importiert. * Strings (d.h. Zeichenketten oder einfach Text) sollte in CSV zwischen Anführungszeichen stehen und kann dann darin sogar Kommas (oder Strichpunkte) enthalten. ===== Weitere Workarounds ===== * Es gibt Workarounds für das Komma-Strichpunkt Dilemma mit dem deutschen Excel. Suchen Sie solche Workarounds und testen Sie, ob die auch auf den Schulcomputern funktionieren.