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

Tkinter askopenfilename으로 파일 열기 및 읽기 방법 총정리

사용자가 디렉터리에서 파일을 열고자 할 때 가장 선호되는 방식은 팝업 대화상자를 띄워 사용자가 직접 파일을 선택하도록 하는 것입니다. 대부분의 도구와 위젯과 마찬가지로 Tkinter 역시 파일 열기, 읽기, 저장을 위한 대화상자를 손쉽게 구현할 수 있는 기능을 제공합니다. 이러한 모든 기능은 Python의 filedialog 모듈에 포함되어 있습니다.

다른 위젯과 마찬가지로 filedialog도 스크립트에서 명시적으로 임포트해야 사용할 수 있습니다. filedialog 모듈에는 이 외에도 askdirectory, askopenfilename, askopenfile, askopenfilenames, asksaveasfilename 등 다양한 유용한 함수들이 포함되어 있습니다.

예제

이 예제에서는 askopenfilename을 사용하여 파일을 열고 내용을 읽는 함수를 정의해 보겠습니다.

파일을 여는 버튼 하나가 포함된 간단한 애플리케이션을 만들고, 선택한 파일의 내용을 Label 위젯에 표시하는 방식입니다. 파일 내용을 읽기 위해서는 파일 경로와 함께 read() 메서드를 사용합니다.

#Import tkinter library
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#Create an instance of tkinter frame or window
win= Tk()
win.geometry("750x150")
#Define a function to Opening the specific file using filedialog
def open_files():
   path= filedialog.askopenfilename(title="Select a file", filetypes=(("text files","*.txt"),
("all files","*.*")))

   file= open(path,'r')
   txt= file.read()
   label.config(text=txt, font=('Courier 13 bold'))
   file.close()
   button.config(state=DISABLED)
   win.geometry("750x450")
#Create an Empty Label to Read the content of the File
label= Label(win,text="", font=('Courier 13 bold'))
label.pack()
#Create a button for opening files
button=ttk.Button(win, text="Open",command=open_files)
button.pack(pady=30)
win.mainloop()

실행 결과

위 코드를 실행하면 버튼이 하나 배치된 창이 나타납니다. 이 버튼을 클릭하면 새로운 대화상자가 열리고, 여기서 파일을 선택하여 불러온 후 내용을 읽을 수 있습니다.

"Open" 버튼을 클릭하면 텍스트 파일(*.txt)뿐만 아니라 모든 형식의 파일(*.*)을 선택할 수 있는 창이 열립니다.