Seite 3 von 3
Verfasst: Mittwoch 20. April 2005, 13:26
von marco_
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?
Verfasst: Mittwoch 20. April 2005, 14:40
von Leonidas
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.
Verfasst: Mittwoch 20. April 2005, 14:48
von marco_
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.
Verfasst: Mittwoch 20. April 2005, 15:21
von Leonidas
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
Textdateien sind halt ein suboptimales Speicherformat.
Verfasst: Mittwoch 20. April 2005, 15:42
von marco_
Naja, welche Dateiart soll ich den sonst nehmen, YAML ist mir leider zu kompliziert...
bzw. Danke für die Hilfe, echt super gelöst
Verfasst: Mittwoch 20. April 2005, 15:44
von Leonidas
marco_ hat geschrieben:Naja, welche Dateiart soll ich den sonst nehmen, YAML ist mir leider zu kompliziert...
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*
Verfasst: Mittwoch 20. April 2005, 15:47
von marco_
Gibt es denn eine gute Dokumentation oder Anleitungen für XML unter Python?
Verfasst: Mittwoch 20. April 2005, 16:06
von Leonidas
marco_ hat geschrieben:Gibt es denn eine gute Dokumentation oder Anleitungen für XML unter Python?
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".
Aber ja, es gibt das Buch Python & XML, sowie ein ganzes kapitel zu dem Thema im Python Cookbook.