0

I want to do something like that:

class DataManager:
    def __init__(self, dirpath):
        self.workdir = dirpath
        self.subjects_list = []
        try:
            self.load()
        except (FileExistsError, FileNotFoundError):
            self.create_base()

    def load(self):
        with open(self.workdir, "rb") as database:
            self.subjects_list = pickle.load(database)

    def save(self):
        with open(self.workdir, "wb") as database:
            pickle.dump(self.subjects_list, database)

    def create_base(self):
        # missed some actions with data
        self.save()

    def __del__(self):
        print("deleted")
        self.save()

datamanager = DataManager("input")

When I run my code, I got this error:

Exception ignored in: <bound method DataManager.__del__ 
of <__main__.DataManager object at 0x0050CCF0>>
Traceback (most recent call last):
  File "datamanager.py", line 39, in __del__
  File "datamanager.py", line 20, in save
NameError: name 'open' is not defined

I cant save my current data in file, when instance is destroying?

Edit: How can I save my data, when the program is shutdown? (maybe by interaption)

Nickolas
  • 1
  • 2

0 Answers0