Я не знаю вашу область, но вы могли бы использовать другую систему сериализации / персистентности, такую как JSON или Twisted Jelly , которая более удобочитаема для человека (есть и другие, такие как YAML ).
Я использовал желе в некоторых проектах для файлов настроек. Это действительно удобно, но вы должны использовать repr (), чтобы сохранить данные в удобочитаемой форме, а затем eval (), чтобы прочитать их обратно. Так что не делайте этого на всех, потому что есть угроза безопасности с помощью eval ().
Вот пример кода, который подправляет представление (добавляет отступ):
VERSION = 'v1.1'
def read_data(filename):
return unjelly(eval(open(filename, 'r').read().replace('\n', '').replace('\t', '')))
def write_data(filename, obj):
dump = repr(jelly(obj))
level = 0
nice_dump = ['%s\n' % VERSION]
for char in dump:
if char == '[':
if level > 0:
nice_dump.append('\n' + '\t' * level)
level += 1
elif char == ']':
level -= 1
nice_dump.append(char)
open(filename, 'w').write(''.join(nice_dump))