-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathsave.py
24 lines (21 loc) · 963 Bytes
/
save.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
import jsonpickle
def save(instance, novel_number, extension="json", directory="novels"):
if not os.path.exists(directory):
os.makedirs(directory)
path = os.path.join(directory, f"{novel_number}.{extension}")
with open(path, "w") as f:
f.write(jsonpickle.encode(instance, unpicklable=True, make_refs=False, indent=4))
print(f"Saved novel data to {path}")
def save_new(instance, extension="json", directory="novels"):
novel_number = 1
path = os.path.join(directory, f"{novel_number}.{extension}")
while os.path.exists(path):
novel_number += 1
path = os.path.join(directory, f"{novel_number}.{extension}")
save(instance, novel_number, extension, directory)
return novel_number
def load(novel_number, extension="json", directory="novels"):
path = os.path.join(directory, f"{novel_number}.{extension}")
with open(path, 'rb') as f:
return jsonpickle.decode(f.read())