Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 텍스트 상자 내용을 파일로 저장하는 방법

Tkinter 애플리케이션에서 텍스트 상자(Text 위젯)에 입력된 내용을 파일로 저장하거나, 반대로 파일의 내용을 텍스트 상자로 불러오는 기능은 메모장 같은 간단한 텍스트 편집기를 만들 때 필수적입니다. 이 글에서는 open() 함수와 Tkinter의 insert(), get() 메서드를 활용해 이 과정을 구현하는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • tkinter 프레임(윈도우)의 인스턴스를 생성합니다.
  • win.geometry() 메서드를 사용해 윈도우의 크기를 설정합니다.
  • open_text()라는 사용자 정의 함수를 정의합니다. 이 함수는 텍스트 파일을 '읽기(r)' 모드로 열어 내용을 content 변수에 저장한 뒤, insert() 메서드를 통해 해당 내용을 텍스트 상자에 삽입합니다.
  • save_text()라는 또 다른 사용자 정의 함수를 정의합니다. 이 함수는 write() 메서드를 사용해 텍스트 상자의 현재 내용을 텍스트 파일에 저장합니다.
  • Text() 메서드로 지정한 높이(height)너비(width)를 가진 텍스트 상자 위젯을 생성합니다.
  • open_text() 함수를 호출하는 '파일 열기' 버튼을 만듭니다.
  • save_text() 함수를 호출하는 '파일 저장' 버튼을 만듭니다.
  • 마지막으로 mainloop()를 실행해 애플리케이션 창을 구동합니다.

예제 코드

# tkinter 라이브러리 임포트
from tkinter import *

# tkinter 윈도우 인스턴스 생성
win = Tk()
win.geometry("700x250")

def open_text():
    # 텍스트 파일을 읽기 모드로 열기
    text_file = open("test.txt", "r")
    content = text_file.read()
    my_text_box.insert(END, content)
    text_file.close()

def save_text():
    # 텍스트 파일을 쓰기 모드로 열어 저장
    text_file = open("test.txt", "w")
    text_file.write(my_text_box.get(1.0, END))
    text_file.close()

# 텍스트 상자 위젯 생성
my_text_box = Text(win, height=10, width=40)
my_text_box.pack()

# 파일 열기 버튼 생성
open_btn = Button(win, text="Open Text File", command=open_text)
open_btn.pack()

# 파일 저장 버튼 생성
save = Button(win, text="Save File", command=save_text)
save.pack()

win.mainloop()

실행 결과

코드를 실행하면 다음과 같은 화면이 나타납니다.

Tkinter 텍스트 상자 내용을 파일로 저장하는 방법

이제 'Open Text File' 버튼을 클릭하면 test.txt 파일이 열리고, 파일의 내용이 텍스트 상자에 표시됩니다.

Tkinter 텍스트 상자 내용을 파일로 저장하는 방법

다음으로 텍스트 상자 안에 새로운 문장을 입력한 뒤 'Save File' 버튼을 클릭하면, 입력한 내용이 test.txt 파일에 그대로 저장됩니다.

Tkinter 텍스트 상자 내용을 파일로 저장하는 방법

핵심 포인트 정리

파일을 열 때는 목적에 맞는 모드를 사용하는 것이 중요합니다. 내용을 불러올 때는 'r'(읽기) 모드를, 저장할 때는 'w'(쓰기) 모드를 사용합니다. 특히 'w' 모드는 기존 파일 내용을 덮어쓰므로 주의가 필요합니다. 또한 get(1.0, END)은 텍스트 상자의 첫 번째 줄 첫 번째 문자부터 끝까지 전체 내용을 가져오는 구문입니다. 작업이 끝난 후에는 반드시 close()로 파일을 닫아 리소스 누수를 방지하는 것이 좋은 습관입니다.