Add information about csv changes and a conversion script

This commit is contained in:
2020-07-20 18:59:15 +02:00
parent f16b8f32b3
commit 605941395b
2 changed files with 88 additions and 0 deletions

44
CSV-CHANGES.md Normal file
View File

@@ -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

44
csv-changer.py Normal file
View File

@@ -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();