So, wie bereits geschrieben hab ich mich für die Einfache TextDatei entschieden. Das ist ja kein Problem solang jede Zeile dem Aufbau von Wort#Übersetzung folgt. Was mach ich aber wenn ich auf einmal den Aufbau Wort#Übersetzung#Tipp will...
Ich dachte mir ich werde nach jedem # einen Buchstaben hinzufügen, der angibt ob es sich um eine Übersetzung einen Tipp oder ähnlichem handelt, also #WWort#ÜÜbersetzung#TTipp . Wie kann man das am besten lösen?
Wie am besten Datei aufbauen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich täts halt einfach mit line.split('#') machen, wobei dann die alternativen Übersetzungen jeweils mit ';' voneinander geteilt wären. Damit wäre dann [0] das Wort, [1] die Übersetzungen und [2] die Tipps.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja schon klar, so mach ichs auch schon. Ich will das ganze aber etwas erweitern, sodass nicht immer ein Tipp vorhanden sein muss oder so dass ich eine Lautssprache hinzufügen kann wenn ich will.
Der normale Aufbau ist ja nur Wort;wort;Wort#Übersetzung;Übersetzung
aber wenn jetzt von fünfzig Vokabeln eines Mit dem Aufbau Wort;Wort#Übersetzung;Übersetzung#Lautssprache#Tipp ist, steigt das Programm aus. Deswegen wollte ich fragen was für Möglichkeiten es gibt dies zu ermöglichen.
Der normale Aufbau ist ja nur Wort;wort;Wort#Übersetzung;Übersetzung
aber wenn jetzt von fünfzig Vokabeln eines Mit dem Aufbau Wort;Wort#Übersetzung;Übersetzung#Lautssprache#Tipp ist, steigt das Programm aus. Deswegen wollte ich fragen was für Möglichkeiten es gibt dies zu ermöglichen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
s = "WWort;Wort#ÜÜbersetzung;Übersetzung#LLautssprache#TTipp"
w = {}
for element in s.split('#'):
print element
if element.startswith('W'):
w['Wort'] = element[1:].split(';')
elif element.startswith('Ü'):
w['Übersetzung'] = element[1:].split(';')
elif element.startswith('L'):
w['Lautsprache'] = element[1:].split(';')
elif element.startswith('T'):
w['Tipp'] = element[1:].split(';')
print w
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich würde ja einfach pickle/mashall nehmen. Und wenn es unbedingt menschenlesbar sein sollte dann in XML serialisieren (also eine Art pickle im XML Format). Aber gut, es ist ja dein Programm, lass dich nicht zu sehr von mir beeinflussen*g*marco_ hat geschrieben:Naja, welche Dateiart soll ich den sonst nehmen, YAML ist mir leider zu kompliziert...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mit XML Marshalling Modulen brauchst du XML nicht mal zu können, du sagst (etwas vereinfacht) MarshallerModul.dump(objektmitdeinendaten, dateiname) und schon wird eine gültige XML Datei auf deiner Festplatte gespeichert. Diese kannst du dann wieder einlesen und exakt so verwenden, wie vor dem "einlegen".marco_ hat geschrieben:Gibt es denn eine gute Dokumentation oder Anleitungen für XML unter Python?
Aber ja, es gibt das Buch Python & XML, sowie ein ganzes kapitel zu dem Thema im Python Cookbook.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice