본문 바로가기

[Tkinter] 51강 파일 저장 다이얼로그 사용하기

@도마22026. 2. 15. 18:00
728x90


이 강의는 Tkinter GUI 강의 51강입니다

50강에서는
파일 열기 다이얼로그를 사용해
사용자가 파일을 선택하도록 만드는 방법을 배웠습니다.

이번 강의에서는
그 반대 개념인
파일 저장 다이얼로그를 다룹니다.

이번 강의의 목표는 분명합니다.
파일 저장 다이얼로그의 동작 방식과
사용자가 지정한 경로에 데이터를 저장하는 흐름을 이해하는 것입니다.


파일 저장 다이얼로그는 언제 필요한가

파일 저장 다이얼로그는
다음과 같은 상황에서 사용됩니다.

  • 편집한 내용 저장
  • 설정 파일 저장
  • 결과물 내보내기

즉,
프로그램 내부 데이터를 외부로 내보낼 때
반드시 필요합니다.


filedialog 저장 함수 소개

파일 저장에는
다음 함수를 사용합니다.

from tkinter import filedialog
file_path = filedialog.asksaveasfilename()

이 함수는
사용자가 지정한
저장할 파일 경로를 반환합니다.


파일을 저장하지 않으면 어떻게 될까

사용자가
취소 버튼을 누르면
반환값은 다음과 같습니다.

빈 문자열("")

따라서
파일 저장 역시
반환값 확인이 필수입니다.


가장 기본적인 파일 저장 예제

import tkinter as tk
from tkinter import filedialog, messagebox

window = tk.Tk()
window.geometry("300x200")

def save_file():
    file_path = filedialog.asksaveasfilename()
    if file_path:
        with open(file_path, "w", encoding="utf-8") as f:
            f.write("저장할 내용")
        messagebox.showinfo("저장 완료", "파일이 저장되었습니다.")

tk.Button(window, text="파일 저장", command=save_file).pack(pady=60)

window.mainloop()

사용자가
저장 위치와 이름을 지정하면
해당 경로에
파일이 생성됩니다.


파일 확장자 기본값 설정하기

파일 저장 시
기본 확장자를
지정할 수 있습니다.

filedialog.asksaveasfilename(defaultextension=".txt")

이렇게 하면
확장자를 입력하지 않아도
자동으로 붙습니다.


확장자 필터 설정하기

filedialog.asksaveasfilename(
    defaultextension=".txt",
    filetypes=[("텍스트 파일", "*.txt"), ("모든 파일", "*.*")]
)

이 설정은
사용자 실수를
크게 줄여줍니다.


확장자 필터 포함 예제

import tkinter as tk
from tkinter import filedialog, messagebox

window = tk.Tk()
window.geometry("300x200")

def save_text():
    file_path = filedialog.asksaveasfilename(
        defaultextension=".txt",
        filetypes=[("텍스트 파일", "*.txt")]
    )
    if file_path:
        with open(file_path, "w", encoding="utf-8") as f:
            f.write("텍스트 내용")
        messagebox.showinfo("저장 완료", file_path)

tk.Button(window, text="텍스트 저장", command=save_text).pack(pady=60)

window.mainloop()

텍스트 파일 저장 흐름이
완성됩니다.


파일 저장 흐름 다시 정리하기

파일 저장의 기본 흐름은
항상 동일합니다.

  1. 저장 다이얼로그 표시
  2. 경로 반환값 확인
  3. 파일 쓰기
  4. 결과 안내

이 순서를
몸에 익혀 두면 됩니다.


파일 저장 시 주의할 점

파일 저장에서는
다음 사항을 반드시 고려해야 합니다.

  • 파일 덮어쓰기 가능성
  • 쓰기 권한 오류
  • 인코딩 문제

실무에서는
try-except와 함께
사용하는 것이 일반적입니다.


파일 저장은 UX의 신뢰를 만든다

저장 기능이 안정적이면
사용자는 프로그램을
신뢰하게 됩니다.

  • 저장 성공 여부 명확히 표시
  • 실패 시 이유 안내

이 두 가지만 지켜도
UX 품질이 크게 올라갑니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • asksaveasfilename으로 저장 경로를 받는다
  • 취소 시 빈 문자열이 반환된다
  • 파일 쓰기는 직접 구현해야 한다
  • 확장자와 필터 설정이 중요하다

다음 강의 예고

다음 강의부터는
Canvas 위젯으로 넘어갑니다.

이제
버튼과 입력창을 넘어
직접 그리는 GUI를 다루게 됩니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차