Я работаю над проектом, который требует, чтобы переменные сохранялись в текстовом файле, а затем возвращались к переменным. Например, текстовый файл, содержащийОпределить объект из текстового файла
var = "123abc"
будут импортированы, и переменная, и это содержимое импортируется в код, что позволяет мне читать, что содержащаяся переменная вар. Это отлично работает с использованием этого кода:
def get_save(filename):
result = {}
with open(filename) as f:
for line in f:
try:
line = line.split(' = ',1)
result[line[0]] = ast.literal_eval(line[1].strip())
except:
pass
return result
globals().update(get_save('SAVEFILE.TXT'))
Однако я хочу сделать что-то более сложное. Я хотел бы иметь возможность создавать объекты в этом текстовом файле. Вот пример класса:
class object():
def __intit__(self, var, var2):
self.var = var
self.var2 = var2
Я тогда хотел бы быть в состоянии сделать это в моем текстовом файле:
ob = object("abc", 123)
или:
obs = [object("def", 456), object("ghi", 789)]
и есть, что импортируется в мой код, готовый к воспроизведению. Я не могу думать о том, чтобы не делать этого, любая помощь была бы высоко оценена!
EDIT: Я хотел бы текстовый файл, чтобы быть легко доступны для редактирования и читаемым
Благодаря
Когда я пытаюсь использовать JSON, я получаю эту ошибку: TypeError: не является JSON serializable –
Inazuma
Да, я не упомянул об этом, но json может только сериализовать базовые типы, такие как список, dict, Boolean, numbers и т. Д. сериализация объекта немного сложнее, но можно найти решение [здесь] (http://stackoverflow.com/questions/3768895/python-how-to-make-a-class-json-serializable). Все зависит от того, какую сложность вы хотите. Если это только файлы настроек, файлы Id рекомендуют сохранять их как dict. –