본문 바로가기

공부/Python

10. [Python] ini 설정값 (configparser)

반응형

example.ini
0.00MB
test5.py
0.00MB

설치 명령어 : pip install configparser
import sys
import configparser

from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget, QTextEdit


class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setupUI()
        self.init_ini()

        self.pushButton1.clicked.connect(self.save_ini)
        self.pushButton2.clicked.connect(self.load_ini)

    def setupUI(self):
        self.setGeometry(800, 200, 300, 300)
        self.setWindowTitle("INI TEST")

        self.textEdit1 = QTextEdit()
        self.pushButton1 = QPushButton("Save INI")
        self.textEdit2 = QTextEdit()
        self.pushButton2 = QPushButton("Load INI")

        layout = QVBoxLayout()
        layout.addWidget(self.textEdit1)
        layout.addWidget(self.pushButton1)
        layout.addWidget(self.textEdit2)
        layout.addWidget(self.pushButton2)

        self.setLayout(layout)

    def init_ini(self):
        self.cf = configparser.ConfigParser()
        self.cf.read('example.ini')

    def save_ini(self):
        up_val = 1
        in_save = self.textEdit1.toPlainText()
        for e in in_save.split():
            self.cf.set("Data1", str(up_val), e)
            up_val += 1

        with open('example.ini', 'w') as handle:
            self.cf.write(handle)

    def load_ini(self):
        print(self.cf.sections())
        keys = self.cf["Data1"].keys()

        self.textEdit2.append("[Data1]")
        for key in keys:
            self.textEdit2.append(self.cf["Data1"][key])

        self.textEdit2.append("[Data2]")
        keys = self.cf["Data2"].keys()
        for key in keys:
            self.textEdit2.append(self.cf["Data2"][key])


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    app.exec_()

 

여기서 주목 할 것은

read 경로랑 write 경로입니다.

처음에 Read 하면 메모리에서 사라지는 줄 알랐습니다.

그래서 계속 write를 다른 변수로 만들었더니

초기화 되거나 2번 쓰게 되더라구요.

그러니 read 하면 한번 불러오고 메모리에 남게 되더라구요.

반응형

'공부 > Python' 카테고리의 다른 글

[Python]여러 엑셀 파일 불러와서 저장하기  (0) 2020.06.16
11. [Python] print 기본 사용  (0) 2020.03.31
python 파일 모드  (0) 2020.02.19
오류 노트  (0) 2020.01.21
9. [Python] ipynb 파일 py로 변환하기  (0) 2020.01.03