You are currently viewing Функция Python | askopenfile() в Tkinter

Функция Python | askopenfile() в Tkinter

При работе с графическим интерфейсом может потребоваться открыть файлы и прочитать из них данные или может потребоваться записать данные в этот конкретный файл. Этого можно достичь с помощью open()функции (встроенной в python), но может оказаться невозможным выбрать какой-либо необходимый файл, если в коде не указан путь к этому конкретному файлу.
С помощью графического интерфейса вы можете не указывать путь к какому-либо файлу, но вы можете напрямую открыть файл и прочитать его содержимое.

Для использования функции askopenfile() вам может потребоваться выполнить следующие действия:

->> import tkinter
->> from tkinter.filedialog import askopenfile ## Now you can use this function
->> file = askopeenfile(mode=’r’, filetypes=[(‘any name you want to display’, ‘extension of file type’)])

Мы должны указать режим, в котором вы хотите открыть файл, как в приведенном выше фрагменте, это откроет файл в режиме чтения.

# importing tkinter and tkinter.ttk
# and all their functions and classes
from tkinter import *
from tkinter.ttk import *

# importing askopenfile function
# from class filedialog
from tkinter.filedialog import askopenfile

root = Tk()
root.geometry('200x100')

# This function will be used to open
# file in read mode and only Python files
# will be opened
def open_file():
	file = askopenfile(mode ='r', filetypes =[('Python Files', '*.py')])
	if file is not None:
		content = file.read()
		print(content)

btn = Button(root, text ='Open', command = lambda:open_file())
btn.pack(side = TOP, pady = 10)

mainloop()

Выход:

Распечатанное содержимое выбранного файла:

Сравнение содержимого исходного файла и печатного содержимого:

Примечание: В приведенном выше коде .py будут открыты только файлы типов (файлы python). Чтобы открыть файлы указанного типа, необходимо указать его в параметре типы файлов вместе с расширением, как это сделано в приведенном выше коде.