Добавление параметра в файле ini в нужное место... Python3 + Tkinter
Есть файл Config.ini с содержимым:
[Station]
bvUseRes=1
[Def]
tvnLoadInMemory=1.0
[Comment]
fLengthMax=250
Есть такой код, добавляющий строку:
def add():
f = open('Config.ini', 'a')
f.write('Param=1')
f.close()
window = Tk()
window.title("Config Manager")
window.geometry('700x500')
Button(window, text='Записать', command=add).grid(column=0, row=0)
window.mainloop()
Он добавляет Param=1 в конец содержимого.
Как можно доработать код, чтобы реализовать добавление в нужный раздел([Station] или [Def] или [Comment]), не удаляя и не заменяя другие уже присутствующие параметры?
Ответы (1 шт):
Автор решения: Yan Wolf
→ Ссылка
import tkinter as tk
from tkinter import ttk
import configparser
def save_config():
config = configparser.ConfigParser()
config['Station'] = {'bvUseRes': '3'}
config['Def'] = {'tvnLoadInMemory': '3.0'}
config['Station']['User'] = 'hg'
config['Comment'] = {'fLengthMax': '450'}
with open(r'F:\py\Skyrim\example.ini', 'w') as configfile:
config.write(configfile)
window = Tk()
window.title("Config Manager")
window.geometry('700x500')
Button(window, text='Записать', command=save_config).grid(column=0, row=0)
window.mainloop()
Изменения в Config.ini:
[Station]
bvUseRes=3
user = hg
[Def]
tvnLoadInMemory=3.0
[Comment]
fLengthMax=450
Так же в код можно добавить например переключатели:
w1 = Scale(window, from_=0, to=42)
w1.grid(column=0, row=6)
w1.set(21)
w2 = Scale(window, from_=0, to=200, length=600, tickinterval=10, orient=HORIZONTAL)
w2.set(101)
w2.grid(column=0, row=7)
(беру пример из своего кода)
И спариваем в общей массе. Получаем переменные со слайдера "w1.get()/w2.get()" и подключаем в нужное место
import tkinter as tk
from tkinter import ttk
import configparser
def save_config():
config = configparser.ConfigParser()
config['Station'] = {'bvUseRes': w1.get()}
config['Def'] = {'tvnLoadInMemory': '3.0'}
config['Station']['User'] = 'hg'
config['Comment'] = {'fLengthMax': w2.get()}
with open(r'F:\py\Skyrim\example.ini', 'w') as configfile:
config.write(configfile)
window = Tk()
window.title("Config Manager")
window.geometry('700x500')
w1 = Scale(window, from_=0, to=42)
w1.grid(column=0, row=6)
w1.set(21)
w2 = Scale(window, from_=0, to=200, length=600, tickinterval=10, orient=HORIZONTAL)
w2.set(101)
w2.grid(column=0, row=7)
Button(window, text='Записать', command=save_config).grid(column=0, row=0)
window.mainloop()