Под записью информации в текстовый файл я и подразумевал различные текстовые форматы, типа .xml, .ini, да и просто .txt
doza_and Последовательность свернуть окошечко, выключить ПК, включить ПК, развернуть окошечко не всегда работает.
Под сохранением состояния программы, могу привести в качество примера Ren-Py. Внутри можно нагородить сколь угодно сложный код, но при сохранении будет открыто именно то место, на котором ты остановился.
Ниже пример работы с XML и описание того, чего я хочу добиться.
import xml.etree.ElementTree as ET
import os
import random
class Element():
def __init__(self, info):
self.info = info
c_element_d = {}
with open("xml/test.xml", 'rb') as xml_file:
tree = ET.parse(xml_file)
root = tree.getroot()
# Выглядит глупо, но тут может быть и куда более сложная информация. Это пример
c_element_d[root] = Element(root.tag)
for child in root:
c_element_d[child] = Element(root.tag)
# Как пример, при первом запуске получаю значения
# <Element 'element' at 0x0000000002700D68
# <Element 'element' at 0x0000000002700D86
# При втором запуске (загрузке) получаю значения для тех же элементов
# <Element 'element' at 0x0000000002700D12
# <Element 'element' at 0x0000000002700D45
# Load
# При загрузке информации мне нужно автоматически показать информацию
# Из элемента <Element 'element' at 0x0000000002700D68>, найдя его среди
# <Element 'element' at 0x0000000002700D12
# <Element 'element' at 0x0000000002700D45
# Что можно сделать через Element.info. Т.е сравнив часть или всю информацию
# В данном случае тег элемента. Вот только для этих элементов он совпадает,
# следовательно будет выбран из них случайный, что в данном случае роли не играет
# но только в данном случае
chosen_el = random.choice(list(c_element_d.keys()))
# Выбираю <Element 'element' at 0x0000000002700D68>
# Вывожу значения какой-нибудь переменной
print(c_element_d[chosen_el].info)
# Save
# Записываю в файл (формат любой), скажем, значение Element.info (т.е тег элемента)