Add information about csv changes and a conversion script
This commit is contained in:
44
CSV-CHANGES.md
Normal file
44
CSV-CHANGES.md
Normal 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
44
csv-changer.py
Normal 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();
|
||||||
Reference in New Issue
Block a user