import os

РАЗДЕЛИТЕЛЬ_ПАР = "___!!!---разделитель пар---!!!___"
РАЗДЕЛИТЕЛЬ_ЗНАЧЕНИЙ = "___!!!---разделитель значений---!!!___"

def записать_в_файл(текст: str, путь: str):
    try:
        with open(путь, mode="w", encoding="utf-8") as файл:
            файл.write(текст)
    except Exception as ошибка:
        print(ошибка)
        return False
    return True

def считать_из_файла(путь: str):
    try:
        with open(путь, mode="r", encoding="utf-8") as файл:
            return файл.read()
    except Exception as ошибка:
        print(ошибка)
        return False
    return True

def словарь_в_текст(словарь: dict):
    результат = ""
    for пара in словарь.items():
        ключ, значение = пара
        текстовая_пара = f"{ключ}{РАЗДЕЛИТЕЛЬ_ЗНАЧЕНИЙ}{значение}"
        результат += текстовая_пара + РАЗДЕЛИТЕЛЬ_ПАР
    return результат[:-len(РАЗДЕЛИТЕЛЬ_ПАР)]

def текст_в_словарь(текст: str):
    результат = {}
    пары = текст.split(РАЗДЕЛИТЕЛЬ_ПАР)
    for пара in пары:
        ключ, значение = пара.split(РАЗДЕЛИТЕЛЬ_ЗНАЧЕНИЙ, 1)
        результат[ключ] = значение
    return результат

def преобразовать_все_словари_в_текст(список_словарей: list):
    текст = ""
    for словарь in список_словарей:
        текст += словарь_в_текст(словарь) + "\n"
    return текст

def преобразовать_весь_текст_в_словари(текст: str):
    список = []
    for строка in текст.splitlines():
        словарь = текст_в_словарь(строка)
        список.append(словарь)
    return список

# if __name__ == "__main__":
#     путь_к_файлу = r"C:\Users\Катрин Волкова\Desktop\Волчонок\u4eba\файл из питона.txt"
#     записать_в_файл("питоновский текстик", путь_к_файлу)
#     print("конец")

#  if __name__ == "__main__":
#     подготовленный = {"id": "62562536536", "имя": "Катрин"}

if __name__ == "__main__":
    список_словарей = [
        {"ключ1": "значение1", "ключ2": "значение2"},
        {"ключ3": "значение3", "ключ4": "значени4"}
    ]

    текст = преобразовать_все_словари_в_текст(список_словарей)
    обратно = преобразовать_весь_текст_в_словари(текст)
    print(список_словарей == обратно)

    этот_файл = __file__
    эта_папка = os.path.dirname(этот_файл)
    файл_с_текстом = os.path.join(эта_папка, "здесь хранится текст.txt")
    print(считать_из_файла(файл_с_текстом))