Python Tkinter GUI 요소들은 대부분 기본적인 기능만을 가지고 있기 때문에, 더욱 많은 기능이 필요한 경우 사용자에게 파일을 선택하거나 저장할 수 있는 대화 상자를 제공해야 할 때가 있습니다. 이 때, filedialog 모듈을 사용할 수 있습니다. 이 글에서는 파이썬 Tkinter 파일 불러오기-filedialog 에 대해 알아보겠습니다.
1. 파이썬 Tkinter 파일 불러오기-filedialog
Tkinter filedialog 모듈
Python filedialog 모듈은 파일 선택 대화 상자를 만드는 데 사용됩니다. filedialog 모듈은 Tkinter 라이브러리에 포함되어 있으며, 다음과 같이 사용할 수 있습니다.
1 2 | from tkinter import filedialog | cs |
filedialog askopenfilename()
askopenfilename() 메서드는 파일을 선택할 수 있는 대화 상자를 엽니다. 이 메서드는 선택한 파일의 경로를 반환합니다. 만약 취소 버튼을 누르면 빈 문자열을 반환합니다. 이 메서드를 사용하면 사용자가 원하는 파일을 쉽게 선택할 수 있습니다.
1 2 3 4 5 | from tkinter import filedialog file_path = filedialog.askopenfilename() print(file_path) | cs |
[결과화면]
filedialog asksaveasfilename()
asksaveasfilename() 메서드는 파일을 저장할 수 있는 대화 상자를 엽니다. 이 메서드는 사용자가 지정한 파일 이름을 반환합니다. 만약 취소 버튼을 누르면 빈 문자열을 반환합니다. 이 메서드를 사용하면 사용자가 원하는 파일 이름으로 쉽게 저장할 수 있습니다.
1 2 3 4 5 | from tkinter import filedialog file_path = filedialog.asksaveasfilename(defaultextension=‘.txt’) print(file_path) | cs |
파일 다이얼로그 창 – 설정
파일 다이얼로그 창에는 여러 가지 설정을 추가할 수 있습니다. askopenfilename() 및 asksaveasfilename() 메서드에서는 다양한 인수를 사용하여 파일 다이얼로그 창의 설정을 추가할 수 있습니다. 이러한 인수는 다음과 같습니다.
- initialdir : 파일 다이얼로그 창이 열릴 기본 디렉토리를 설정합니다.
- title : 파일 다이얼로그 창의 제목을 설정합니다.
- filetypes : 파일 다이얼로그 창에서 사용 가능한 파일 유형을 설정합니다.
예를 들어, 다음과 같이 사용자의 문서 폴더에서 txt 파일을 선택할 수 있는 파일 다이얼로그 창을 열 수 있습니다.
1 2 3 4 5 | from tkinter import filedialog file_path = filedialog.askopenfilename(initialdir=‘C:/Users/사용자명/Documents’, title=‘Select a text file’, filetypes=((‘Text files’, ‘*.txt’), (‘All files’, ‘*.*’))) print(file_path) | cs |
[결과화면]
메모장.txt 선택 후 열기 시 결과 값은 경로로 받음.
2. 예제1 – 파일 탐색 창 사용 이미지 파일 열기
이번 예제에서는 파일 다이얼로그 창을 사용하여 이미지를 불러오는 코드를 작성해보겠습니다. 다음과 같이 코드를 작성할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from tkinter import * from tkinter import filedialog root = Tk() def open_image(): file_path = filedialog.askopenfilename(filetypes=((“Image files”, “*.jpg;*.png”), (“All files”, “*.*”))) image = PhotoImage(file=file_path) label = Label(root, image=image) label.pack() button = Button(root, text=“Open Image”, command=open_image) button.pack() root.mainloop() | cs |
[결과화면]
3. 예제2 – 파이썬 tkinter csv, 엑셀파일, 텍스트파일 불러오기
다음은 Python tkinter를 사용하여 CSV, XLSX 및 TXT 파일을 가져오는 예제 코드입니다. CSV, XLSX 및 TXT 파일을 가져오기 위한 세 개의 버튼이 있는 tkinter 창을 만듭니다. 사용자가 버튼을 클릭하면 파일 대화 상자가 열리고 사용자가 파일을 선택할 수 있습니다. 파일이 선택되면 코드는 pandas를 사용하여 파일을 읽고 CSV 및 XLSX 파일의 콘솔에 데이터를 인쇄합니다. TXT 파일의 경우 코드는 파일을 읽고 내용을 콘솔에 인쇄합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import tkinter as tk from tkinter import filedialog import pandas as pd class FileImporter(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.csv_button = tk.Button(self, text=“Import CSV”, command=self.import_csv) self.csv_button.pack(side=“left”) self.xlsx_button = tk.Button(self, text=“Import XLSX”, command=self.import_xlsx) self.xlsx_button.pack(side=“left”) self.txt_button = tk.Button(self, text=“Import TXT”, command=self.import_txt) self.txt_button.pack(side=“left”) def import_csv(self): file_path = filedialog.askopenfilename(filetypes=[(“CSV Files”, “*.csv”)]) if file_path: data = pd.read_csv(file_path) print(data.head()) def import_xlsx(self): file_path = filedialog.askopenfilename(filetypes=[(“XLSX Files”, “*.xlsx”)]) if file_path: data = pd.read_excel(file_path) print(data.head()) def import_txt(self): file_path = filedialog.askopenfilename(filetypes=[(“TXT Files”, “*.txt”)]) if file_path: with open(file_path, “r”) as f: data = f.read() print(data) root = tk.Tk() app = FileImporter(master=root) app.mainloop() | cs |
파이썬 tkinter csv 열기
파이썬 tkinter 엑셀파일 xlsx 열기
파이썬 tkinter 텍스트파일 txt 열기
4. 파이썬 Tkinter 파일 불러오기-filedialog-결론 및 의견
이상으로 파이썬 Tkinter 파일 불러오기-filedialog 에 대해서 알아보았습니다. filedialog 모듈을 사용하면 파이썬에서 파일을 선택하고 저장할 수 있는 대화 상자를 만들 수 있습니다. 이를 활용하면 더욱 인터랙티브한 GUI 프로그램을 만들 수 있습니다. 파일 다이얼로그 창의 다양한 설정을 활용하여 사용자에게 더욱 편리한 프로그램을 제공할 수 있습니다.
[관련글]
파이썬 GUI 라이브러리 – PYQT, TKINTER, KIVY