Как исправить ситуацию, когда при сохранении данных в файл "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 и может быть сложной в использовании.