Как сделать запись конфигурации, без перезаписи предыдущей конфигурации?
Как сделать так, чтобы при сохранении данных конфигурации в файл .ini происходило дополнение файла новой конфигурацией, а не перезапись предыдущей? В общем, сделать так, чтобы файл .ini все время дополнялся при его сохранении, чтобы затем, доставать надстройки по ключу.
main.py:
import untitled
import configparser
from untitled import Ui_MainWindow
import PyQt5
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Testik(QtWidgets.QMainWindow, untitled.Ui_MainWindow):
def __init__(self, parent=None):
super(Testik, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.Conf)
self.pushButton_2.clicked.connect(self.LoadConf)
def Conf(self):
conf = configparser.ConfigParser()
lbl = self.lineEdit.text()
conf[lbl] = {
'spb': self.spinBox.value(),
'spb_2': self.spinBox_2.value()
}
with open("testConfig.ini", "w") as conf_obj:
conf.write(conf_obj)
def LoadConf(self):
conf = configparser.ConfigParser()
lbl = self.lineEdit.text()
conf.read("testConfig.ini")
self.spinBox.setValue(int(conf[lbl]['spb']))
self.spinBox_2.setValue(int(conf[lbl]['spb_2']))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ui = Testik()
ui.show()
app.exec_()
sys.exit(app.exec_())
ui.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(369, 108)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout.addWidget(self.lineEdit)
self.spinBox = QtWidgets.QSpinBox(self.centralwidget)
self.spinBox.setProperty("value", 1)
self.spinBox.setObjectName("spinBox")
self.horizontalLayout.addWidget(self.spinBox)
self.spinBox_2 = QtWidgets.QSpinBox(self.centralwidget)
self.spinBox_2.setProperty("value", 2)
self.spinBox_2.setObjectName("spinBox_2")
self.horizontalLayout.addWidget(self.spinBox_2)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout.addWidget(self.pushButton_2)
self.horizontalLayout_2.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 369, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.lineEdit.setText(_translate("MainWindow", "TEST"))
self.pushButton.setText(_translate("MainWindow", "save"))
self.pushButton_2.setText(_translate("MainWindow", "load"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())