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)