У меня здесь небольшая проблема.Я пытаюсь загрузить TXT-файл, который я сохранил ранее, делая сеанс в моем консольном приложении.Когда я загружаю файл.словарь выглядит так:
1111 ['peter']
7777 ['frida']
1337 ['john', 'johnny']
2121 ['peter', 'foppa']
цифры - это ключи, которые связаны с персонами / псевдонимами.Когда я загружаю его и пытаюсь добавить новые псевдонимы, мои функции не могут найти имена ..
Когда я добавляю новых людей или создаю псевдонимы для существующих людей с пустым словарем, это выглядит так:
1337 killer
1337 murderer
6677 sebastian
Моя функция добавления выглядит следующим образом:
def add(self,name,number):
p = phonebook(name)
if number in self.dictList:
print("nummret finns redan")
else:
self.dictList[number] = [p]
print("Ny person sparad")
Моя функция псевдонима выглядит следующим образом:
def alias(self,name,newName,number = None):
self.checkIfNameExist(name)
if self.checkIfNameExist(name) == None:
print("telebok> finns ingen med det namnet")
else:
self.isNameMoreThenOne(name)
if self.isNameMoreThenOne(name) == 1:
print(self.isNameMoreThenOne(name))
#getnumber
number = self.returnNumberFromName(name)
name = newName
p = phonebook(name)
#save object with append
self.dictList[number].append(p)
#save object with append
print("telebok> nytt alias skapat")
elif self.isNameMoreThenOne(name) > 1:
if number:
name = newName
p = phonebook(name)
self.dictList[number].append(p)
print("telebok> nytt alias har skapats")
else:
print("Det finns flera med samma namn, skriv in numret")
Функция сохранения в текстовый файл выглядит следующим образом:
def save(self,filename):
f = open(filename,"w")
for number in self.dictList:
printNumber = (str(number + ";"))
f.write(printNumber)
keys = self.dictList[number]
for name in keys:
printName = str(name.name + ";")
print(printName)
f.write(printName)
f.write("\n")
f.close()
И моя функция загрузки из текстового файла выглядит следующим образом:
def load(self,filename):
dList = {}
f = open(filename,"r")
for readLine in f:
readLine = readLine.split(";")
number = readLine[0]
#print(number)
nameLength = len(readLine[1:])
#print(nameLength)
name = readLine[1:nameLength]
p = phonebook(name)
self.dictList[number] = dict()
#print(name)
self.dictList[number] = [p]
print(self.dictList)
f.close()
Все работает, когда я запускаю программу с самого начала и все делаю шаг за шагом, добавляя нового человека.создание псевдонима для имени, создание псевдонима для существующего псевдонима и т. д. Когда я сохраняю или загружаю текстовый файл, что-то идет не такЯ предполагаю, что функция загрузки.У кого-нибудь из вас есть какие-либо предположения о том, что я мог бы сделать вместо того, чтобы читать из текстового файла и использовать программу, как я делаю, прежде чем сохранить / загрузить из текстового файла?