Класс в текстовый файл в список - PullRequest
0 голосов
/ 20 мая 2018

Я сейчас работаю над проектом, пытающимся создать простую банковскую систему.Основы системы сделаны, насколько мне известно, но есть одна проблема.Я пытаюсь создать систему сохранения файлов для моих "банковских счетов".Когда создается новая учетная запись (то есть создается новый класс), она должна быть сохранена в текстовом файле, чтобы в следующий раз, когда вы открываете программу, этот банковский счет (класс) уже был загружен и доступен.Это предназначено для использования для разрыва аккаунтов.

Проблема, с которой я сталкиваюсь, заключается не в том, чтобы сохранить класс в текстовый файл, а загрузить его в мой список, где я храню все созданные классы.Так или иначе, мне нужно иметь возможность загружать все классы из моего текстового файла в список при каждом запуске программы.Пробовал использовать pickle, но из-за недостатка знаний у меня просто вылетало приложение.Кто-нибудь, кто мог бы помочь?

Как это выглядит, когда я создаю класс и пытаюсь сохранить его в список (Python)

def nyttkonto():
global konton, aktiv
persnr = simpledialog.askinteger("Personnummer","Ange personnummer (8 siffor)")
fnamn = simpledialog.askstring("Förnamn", "Ange förnamn").lower().capitalize()
enamn = simpledialog.askstring("Efternamn", "Ange efternamn").lower().capitalize()
money = simpledialog.askinteger("Startkapital","Ange startkapitalet på det nya konto")
konton.append(KontoAnvandare(persnr, fnamn, enamn, money))
#This is where the problem starts
with open("kontolista.txt","r") as k:
    folder = k.read()
    konton.append(folder)
#This is where the problem ends, sort of
aktiv = len(konton)-1
visaKonto()

для списка "konton" установлено значение konton = [] как часть кода, поэтому я должен иметь возможность заполнить его при перезапуске.

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Делай это, используя рассол!

import pickle

# create bank_accounts.txt
pickle.dump([], "bank_accounts.txt") # do this once than remove from your code

# load bank accounts
bank_accounts = pickle.load("bank_accounts.txt")

# add new accounts
bank_accounts.append(new_account)
bank_accounts.append(other_account)

# save bank accounts
pickle.dump(bank_accounts, "bank_accounts.txt")
0 голосов
/ 20 мая 2018

Ваш bank_accounts.append(load) не считается частью with.

...