Hier mal einige Anmerkungen zum Code...
- Generelles: Vermische nicht Tabs und Leerzeichen für das Einrücken. Benutze immer vier Leerzeichen, das ist auch in
PEP8 vorgesehen.
- Wieso öffnest Du in Zeile 2 eine Datei, um sie in Zeile 3 wieder zu schließen? Komplett sinnlos
- Dateien solltest Du immer mit ``with`` öffnen. Das schließt die Datei automatisch wieder; auch in einem Fehlerfall:
Code: Alles auswählen
with open(...) as fobj:
# hier kannst Du Operationen auf fobj vornehmen
# fobj.close() brauchst Du nicht mehr aufrufen!
- Das Parsen Deiner Vokabeldateien sieht ziemlich identisch aus. Das ist ein typischer Fall von Copy- und Paste-Programmierung und verstößt gegen
DRY. Du solltest das Parsen in eine Funktion auslagern und diese dann an den beiden Stellen aufrufen.
- Du solltest Deinen Code insgesamt besser strukturieren - ich kann ohne genaueres Hinsehen nicht verstehen, *was* Dein Programm eigentlich macht. Schreibe kleinere Funktionen, die einen aussagekräftigen Namen haben und verraten, was sie tun. (Ja, das ist schwierig; für einen Anfänger sowieso aber unbedingt notwendig!)
- Habe keinen Code auf Modulebene. Wenn Du Dein Modul von einem anderen Modul importierst, wird sofort Code ausgeführt. Verwende folgenden Trick, um das zu vermeiden, gleichzeitig das zu erlauben, dass Du das Programm wie gewohnt starten kannst:
Code: Alles auswählen
def main():
# hier Dein Code
if __name__ == "__main__":
main()
- Kleiner Tipp: Du musst das Parsen natürlich nicht von neuem erfinden. Nutze eine Bibliothek von Python, um Dir die Datenstrukturen (also in Deinem Falle Wörterbücher) in eine Datei zu schreiben und daraus wieder zu lesen. Du könntest z.B. JSON nutzen und dafür das ``json`` Modul. Das geht extrem einfach:
Code: Alles auswählen
import json
words = {"if": "wenn", "while": "solange"}
data_as_str = json.dumps(words)
print(data_as_str)
> '{"if": "wenn", "while": "solange"}'
words_reloaded = json.loads(data_as_str)
print(words_reloaded)
> {'if': 'wenn', 'while': 'solange'}
- Kommentiere nicht so viel aus, sondern lösche alten, nicht mehr gebrauchten Code. Nutze ein Versionskontrollsystem wie Git oder Mercurial, um ggf. alten Code wiederherzustellen. Für kleinere Scripte kannst Du auch einfach gist.github.com nutzen. Das kann zu einem Snippet Versionen vorhalten. Bessr wäre es aber, wirklich ein VCS zu nutzen.