diff --git a/CSV-CHANGES.md b/CSV-CHANGES.md new file mode 100644 index 0000000..42c9173 --- /dev/null +++ b/CSV-CHANGES.md @@ -0,0 +1,44 @@ +# Auftragsdateien +## Änderungen an der CSV-Datei +Die folgenden Änderungen habe ich an der CSV-Datei vorgenommen. Mittels des Python-3-Skripts `csv-changer.py` können diese Änderungen auch schnell durchgeführt werden. + +- Die erste Zeile (Überschriften) entfällt +- Die erste Spalte (Ids) entfällt +- Die Begriffe werden ins Englische übersetzt und kleingeschrieben: + - `Auslagerung` -> `out` + - `Einlagerung` -> `in` + - `Papier` -> `paper` + - `Holz` -> `wood` + - `Stein` -> `stone` + - `Weiß` -> `white` + - `Blau` -> `blue` + - `Grün` -> `green` + - `A3` -> `a3` + - `A4` -> `a4` + - `A5` -> `a5` + - `Buche` -> `beech` + - `Kiefer` -> `pine` + - `Eiche` -> `oak` + - `Bretter` -> `boards` + - `Balken` -> `beams` + - `Scheit` -> `pieces` + - `Marmor` -> `marble` + - `Granit` -> `granite` + - `Sandstein` -> `sandstone` + - `Leicht` -> `light` + - `Mittel` -> `medium` + - `Schwer` -> `heavy` +- Folgende Spaltensortierung wird vorgenommen: + 1. `in`/`out` + 2. Produkttyp + 3. Belohnung + 4. Eigenschaft 1 + 5. Eigenschaft 2 +- Abgespeichert wird mit Kommas statt Semikolons + +## Begründungen +- Die Überschriften sind nicht nötig +- Die Ids würden beim Einlesen sowieso entfallen +- Durch die Übersetzung ins Englische lösen sich Probleme mit den Sonderzeichen und die Begriffe können später einheitlich in den Übersetzungsdateien übersetzt werden. +- Diese Umsortierung wurde speziell vorgenommen um zu ermöglichen, dass noch weitere Attribute eingelesen werden können +- Kommas statt Semikolons damit es eine "richtige" CSV-Datei diff --git a/csv-changer.py b/csv-changer.py new file mode 100644 index 0000000..4a95782 --- /dev/null +++ b/csv-changer.py @@ -0,0 +1,44 @@ +import sys, io + +def main(): + if len(sys.argv) < 2: + print('Please give the file name as argument'); + sys.exit(100); + + out_name = sys.argv[1].split('.')[-2] + '-processed.csv'; + + with open(sys.argv[1], 'r', encoding='latin1') as original: + with open(out_name, 'w') as out_file: + original = original.read(); + lines = original.splitlines(False)[1:]; + for line in lines: + line = line.replace('Auslagerung', 'out'); + line = line.replace('Einlagerung', 'in'); + line = line.replace('Papier', 'paper'); + line = line.replace('Holz', 'wood'); + line = line.replace('Stein', 'stone'); + line = line.replace('Weiß', 'white'); + line = line.replace('Blau', 'blue'); + line = line.replace('Grün', 'green'); + line = line.replace('A3', 'a3'); + line = line.replace('A4', 'a4'); + line = line.replace('A5', 'a5'); + line = line.replace('Buche', 'beech'); + line = line.replace('Kiefer', 'pine'); + line = line.replace('Eiche', 'oak'); + line = line.replace('Bretter', 'boards'); + line = line.replace('Balken', 'beams'); + line = line.replace('Scheit', 'pieces'); + line = line.replace('Marmor', 'marble'); + line = line.replace('Granit', 'granite'); + line = line.replace('Sandstein', 'sandstone'); + line = line.replace('Leicht', 'light'); + line = line.replace('Mittel', 'medium'); + line = line.replace('Schwer', 'heavy'); + parts = line.split(';'); + + out_file.write(parts[1] + ',' + parts[2] + ',' + parts[5] + ',' + parts[3] + ',' + parts[4] + '\n'); + + + +if __name__ == '__main__': main();