Как исправить ситуацию, когда при сохранении данных в файл "allaccounts.ini" добавляются переменные из файла "parametrs.ini", в то время как я хочу сохранить только необходимые данные? Вот пример кода, который вызывает такую проблему: ```python def update_points(person_num, x): config.read("database/allaccounts.ini", encoding="utf-8") y = int(c.allaccounts[int(person_num)][2]) y += x config.set(person_num, "points", str(y)) with open("database/allaccounts.ini", "w") as configfile: config.write(configfile) ``` Предварительно я открыл файл "database/parametrs.ini". Как исправить это?
В вашем коде проблема заключается в том, что вы снова читаете и записываете весь файл "allaccounts.ini", используя `config.read()` и `config.write()`. Это приводит к добавлению переменных из "parametrs.ini" при записи. Чтобы избежать этой проблемы, вы можете использовать функцию `configparser.set()` для изменения только нужной вам переменной, а затем записать изменения в файл, не считывая его повторно. Вот исправленный код: ```python def update_points(person_num, x): config.read("database/allaccounts.ini", encoding="utf-8") y = int(config.get(person_num, "points")) y += x config.set(person_num, "points", str(y)) with open("database/allaccounts.ini", "w") as configfile: config.write(configfile) ``` В этой версии кода мы используем `config.get()` для получения значения переменной "points" для указанного `person_num`. Затем мы изменяем это значение и устанавливаем его обратно с помощью `config.set()`. Наконец, мы записываем измененный файл "allaccounts.ini" без повторного считывания всего содержимого файла.
Откуда у тебя приходит переменная config? Где она ещё используется?
Можешь уточнить, откуда берется переменная config и где еще она применяется? read() будет дочитывать данные в текущее состояние конфига, не сбрасывая его в ноль перед чтением.
Метод read() продолжит чтение данных с текущего состояния конфига, не устанавливая его в ноль перед чтением. Не экономь, создавай отдельный экземпляр парсера на каждый файл.
Рекомендуется создавать отдельный экземпляр парсера на каждый файл, не экономьте на этом. Ну и да, база данных в ini? Лучше не надо. sqlite не настолько сложен.
Лучше не использовать базу данных в формате ini, так как она не настолько функциональна как SQLite и может быть сложной в использовании.