ich habe ein Problem mit diesem Programm.
Code: Alles auswählen
#!/usr/bin/python
# -*-coding: utf-8 -*-
# Version 0.1
import random
import cPickle
class Vokabeln:
def __init__(self, Vokabeldatei):
self.Vokabeldatei = Vokabeldatei
def neueVokabeln(self):
try:
f=file(self.Vokabeldatei, 'w')
e=cPickle.Unpickler(f)
z=e.load()
neu=z.append([raw_input('Schreibe hier die neue Vokabel: '), raw_input('Schreibe hier ihre Übersetzung: ')])
p=cPickle.Pickler(neu)
p.dump()
f.close
except IOError:
f=file(self.Vokabeldatei, 'w')
p=cPickle.Pickler(f)
p.dump([[raw_input('Schreibe hier die neue Vokabel: '), raw_input('Schreibe hier ihre Übersetzung: ')]])
f.close
def frageVokabeln(self):
f=open(self.Vokabeldatei, 'r')
up=cPickle.Unpickler(f)
vokabeln=up.load()
print vokabeln
laenge=len(vokabeln)
a=random.randrange(0, laenge)
print vokabeln[a][0]
if raw_input('Antwort: ') == vokabeln[a][1]:
print 'Richtig'
else:
print 'Falsch\nRichtig wäre ',vokabeln[a][1],'!'
f.close()
print '''Das ist ein kleines Vokabelabfrageprogramm\n
Man benutzt es, indem man "Frage" eintippt.
Wenn man neue Vokabeln anlegen möchte, tippt man "neu"'''
weiter=True
while weiter:
vok=Vokabeln('/home/basti/Eigene_Dateien/vok.data')
antwort=raw_input('Was möchten Sie tun? ')
if antwort == 'neu':
vok.neueVokabeln()
continue
elif antwort == 'Frage':
vok.frageVokabeln()
else:
print "Das gibt's nicht"
Wenn ich eine neue Vokabel hinzufüge, wird diese mit ihrer Übersetzung gespeichert und lässt sich auch korrekt abfragen. Wenn ich jetzt eine neue Vokabel hinzufüge, dann überschreibt diese jedoch die erste usw.. Ich vermute, dass der Fehler irgenwo zwischen Zeile 13 und 26 liegt.
Ich bedanke mich für jede Hilfe!