В этом руководстве по Python мы узнаем, как работать с файлами в Python Tkinter . Мы будем читать текстовый файл с использованием Python Tkinter , а также рассмотрим эти темы.
Открытый текстовый файл Python Tkinter
- В этом разделе мы узнаем, как открыть текстовый файл с помощью Python Tkinter , который присутствует в вашей системе.
- Функция open() используется для открытия файлов.
- В Python Tkinter в основном есть три режима открытия файлов.
- ‘ r ‘: открыть файл в режиме только для чтения.
- ‘ w ‘: открыть файл в режиме только для записи.
- ‘ a ‘: открыть файл в режиме добавления.
- режим чтения является режимом по умолчанию. Это означает, что даже если режим чтения не указан при открытии файла, он будет его использовать.
- Как и в нашей системе, мы видим диалоговое окно файла, чтобы открыть файл, аналогичный тому, что мы будем делать с помощью Python Tkinter.
- В Python Tkinter есть модуль
filedialog
, с помощью которого мы можем открывать системные файлы. - Давайте посмотрим на реализацию Python Tkinter Read a Text File.
Синтаксис :
Вот синтаксис использования функции open()
f = open("file_path", "mode") data = f.read()
- Здесь относится к местоположению файла, и для этого
file_path
мы будем использовать filedialog . - режим может быть «r», «w», «a» . Любой режим с суффиксом «+» будет выполнять как чтение, так и запись.
- Здесь f — указатель файла, а data содержит содержимое текстового файла.
Вот синтаксис для использования файлового диалога в Python Tkinter.
from tkinter import filedialog tf = filedialog.askopenfilename( initialdir="C:/Users/MainFrame/Desktop/", title="Open Text file", filetypes=(("Text Files", "*.txt"),) )
- чтобы получить доступ к filedialog , нам нужно импортировать модуль.
- tf — это переменная, которая будет представлять filedialog.
- в классе filedisalog мы используем функцию asopenfilename .
- initialdir — это каталог по умолчанию, который будет открываться в диалоговом окне filedialog.
- title является заголовком диалогового окна file
- filetypes указывает типы файлов, которые вы хотите принять. Он работает как фильтр. В нашем случае мы указали, что нам нужны файлы только с расширением .txt.
"*.txt"
здесь * означает любой файл, независимо от имени, но должен иметь расширение txt.
Давайте посмотрим на небольшую программу, чтобы понять, что мы уже узнали.
Код:
В этом коде мы использовали функцию open для чтения содержимого файла в Python tkinter. Содержимое отображается в виджете «Текст». Текстовые файлы можно выбрать с помощью диалогового окна файла. Выбранный путь к файлу отображается в поле ввода.
from tkinter import * from tkinter import filedialog def openFile(): tf = filedialog.askopenfilename( initialdir="C:/Users/MainFrame/Desktop/", title="Open Text file", filetypes=(("Text Files", "*.txt"),) ) pathh.insert(END, tf) tf = open(tf) # or tf = open(tf, 'r') data = tf.read() txtarea.insert(END, data) tf.close() ws = Tk() ws.title("PythonGuides") ws.geometry("400x450") ws['bg']='#fb0' txtarea = Text(ws, width=40, height=20) txtarea.pack(pady=20) pathh = Entry(ws) pathh.pack(side=LEFT, expand=True, fill=X, padx=20) Button( ws, text="Open File", command=openFile ).pack(side=RIGHT, expand=True, fill=X, padx=20) ws.mainloop()
В этом выводе мы выбрали текстовый файл с именем Readme.txt. Вы можете видеть, что содержимое Readme.txt отображается на экране.
Python Tkinter Чтение текстового файла
- В этом разделе мы узнаем, как читать текстовый файл с помощью Python Tkinter.
- Большая часть уже описана в предыдущем разделе. Итак, здесь мы обсудим вещи, которые не были рассмотрены в предыдущем разделе.
- Мы поговорим о read() , readline() , readlines() , readable().
- read() используется для чтения всего содержимого файла.
- readline() возвращает содержимое только строки
- readlines() возвращает все содержимое файла в виде списка. каждая строка отделена.
- readable() проверяет, находится ли содержимое файла в удобочитаемой форме. Он возвращает логическое значение.
- Для поддержки нашего примера мы создали текстовый файл read.txt.
Пример записи в файле.
Текст, упомянутый на изображении выше, является фиктивным текстом. Теперь мы будем выполнять функции чтения, используя этот файл read.txt.
читать():
Чтобы прочитать файл и распечатать все данные, мы используем функцию read().
f = open("read.txt")
print(f.read())
Этот код вернет все содержимое файла read.txt.
Если мы передадим целочисленный аргумент этой функции read(), она вернет слова до этого числа. Допустим, если это print(f.read(5))
так, то вывод будет One m , то есть первые пять символов, включая пробел. и мы print(f.read())
снова запускаем функцию, тогда она отобразит оставшееся содержимое. Это может немного сбивать с толку, но этот пример все прояснит.
f = open("read.txt")
print(f.read(5))
print(f.read())
В этом выводе вы можете заметить, что когда мы снова вызвали функцию read(), она продолжила работу с того места, где осталась в первой строке.
строка чтения():
- Эта функция возвращает строку содержимого. Каждый раз, когда программа запускается, она возвращает следующую строку
- Так как в этом текстовом файле 4 строки, то нам нужно реализовать эту функцию 4 раза, чтобы увидеть все строки на экране.
- Как и функция read(), readline() также возвращает последовательные символы до переданного целочисленного значения.
- Давайте посмотрим все, что мы узнали, в действии.
f = open("read.txt")
print(f.readline(5)) # 1
print(f.readline()) # 2
print(f.readline()) # 3
В этом выводе вы видите, что во второй строке кода мы передали аргумент 5, так как в результате на выходе печатается только один m. Во второй строке кода мы снова напечатали файл read.txt с помощью функции readline(). Это продолжило текст и напечатало только строку. Таким образом, вы можете видеть, что каждое значение функции печатается, она печатает только одну строку текстового файла. Всего 3 раза выводится значение функции readline().
строки чтения () :
- Функция readlines() добавляет каждую строку в список, а затем возвращает его. Другими словами, вывод этой функции представляет собой список со строками содержимого в качестве элементов списка.
- Это очень полезно, если вы хотите настроить таргетинг на определенную строку в таблице.
- Независимо от того, какой целочисленный аргумент вы передадите, он вернет только строку с индексом 0. Но если вы передадите 0, он вернет весь список.
- Давайте посмотрим все, что мы узнали, в действии.
f = open("read.txt")
print(f.readlines(2))
print(f.readlines())
print(f.readlines())
В этом выводе вы можете видеть, что readlines() предоставляется с аргументом, т.е. 2 , даже тогда он отображает первый. Кроме того, вы можете заметить, что когда значение функции печатается снова, тогда оно не отображает первую строку, поскольку оно уже отображалось в первой строке вывода. Поскольку весь текст отображается в первой и второй строке вывода, поэтому, когда значение функции печатается снова, оно возвращает пустую строку.
Текстовый файл отображения Python Tkinter
- В Python
Open()
установлен режим чтения по умолчанию. - Поэтому каждый раз, когда мы открываем файл, мы отображаем его по умолчанию.
- Мы рассмотрели эту тему в нашем разделе выше. Пожалуйста, обратитесь к разделу Python Tkinter Read Text File для демонстрации и объяснения этой темы.
Python Tkinter Сохранить в текстовый файл
- В этом разделе мы узнаем, как сохранить содержимое текстового файла Python Tkinter.
- Каждый день во время работы на компьютере мы сохраняем файлы. Поэтому для этого необходимо знать интерфейс.
- Мы нажимаем кнопку «Сохранить», сохранения без сообщения уже сохранены, в противном случае открывается диалоговое окно файла, пользователь переходит к месту и затем нажимает кнопку «Сохранить». Файл сохраняется в этом месте.
- Точно так же мы будем использовать модуль filedialog Python Tkinter для создания файлового диалога. Используя файловый диалог, пользователь может сохранить файл.
Код:
В этом коде мы реализовали запись файла с помощью python tkinter, сохранение файла с помощью python tkinter и редактирование файла с помощью python tkinter. Это целое приложение, которое можно использовать в качестве блокнота, в котором пользователь может что-то писать, сохранять и открывать файл.
from tkinter import * from tkinter import filedialog # functions def openFile(): tf = filedialog.askopenfilename( initialdir="C:/Users/MainFrame/Desktop/", title="Open Text file", filetypes=(("Text Files", "*.txt"),) ) pathh.insert(END, tf) tf = open(tf) file_cont = tf.read() txtarea.insert(END, file_cont) tf.close() def saveFile(): tf = filedialog.asksaveasfile( mode='w', title ="Save file", defaultextension=".txt" ) tf.config(mode='w') pathh.insert(END, tf) data = str(txtarea.get(1.0, END)) tf.write(data) tf.close() ws = Tk() ws.title("PythonGuides") ws.geometry("400x500") ws['bg']='#2a636e' # adding frame frame = Frame(ws) frame.pack(pady=20) # adding scrollbars ver_sb = Scrollbar(frame, orient=VERTICAL ) ver_sb.pack(side=RIGHT, fill=BOTH) hor_sb = Scrollbar(frame, orient=HORIZONTAL) hor_sb.pack(side=BOTTOM, fill=BOTH) # adding writing space txtarea = Text(frame, width=40, height=20) txtarea.pack(side=LEFT) # binding scrollbar with text area txtarea.config(yscrollcommand=ver_sb.set) ver_sb.config(command=txtarea.yview) txtarea.config(xscrollcommand=hor_sb.set) hor_sb.config(command=txtarea.xview) # adding path showing box pathh = Entry(ws) pathh.pack(expand=True, fill=X, padx=10) # adding buttons Button( ws, text="Open File", command=openFile ).pack(side=LEFT, expand=True, fill=X, padx=20) Button( ws, text="Save File", command=saveFile ).pack(side=LEFT, expand=True, fill=X, padx=20) Button( ws, text="Exit", command=lambda:ws.destroy() ).pack(side=LEFT, expand=True, fill=X, padx=20, pady=20) ws.mainloop()
В этом выводе фиктивный текст записывается в текстовой области. Теперь, когда пользователь нажимает кнопку «Сохранить», открывается проводник. Пользователь может перейти к месту, где он хочет сохранить его, после этого нажмите кнопку «Сохранить». Файл сохраняется в системе и может быть открыт нажатием на кнопку «Открыть».
Python Tkinter Запись текстового файла
- В этом разделе мы узнаем, как написать текстовый файл в Python Tkinter.
open(file_path, w) is
используется для записи файла в существующий файл.open(file_path, w+)
используется для записи файла, и если файл еще не существует, он создаст новый файл.- При работе с Python Tkinter мы можем передать любой из них, они оба будут работать одинаково.
- Пожалуйста, обратитесь к нашему разделу Python Tkinter Save to Text File, чтобы увидеть демонстрацию.
Python Tkinter Редактировать текстовый файл
- В этом разделе мы узнаем, как редактировать текстовый файл в Python Tkinter.
- Редактировать означает, что в файле уже есть какой-то текст, и мы хотим его изменить.
- В Python редактирование файлов можно выполнять в режиме добавления .
- но в случае Tkinter вы можете просто открыть файл, внести изменения и сохранить его снова.
- обратитесь к нашему разделу Python Tkinter «Сохранить в текстовый файл», чтобы увидеть демонстрацию.
Python Tkinter Создать текстовый файл
- Чтобы создать текстовый файл в Tkinter, важно выделить некоторую текстовую область.
- Вы можете использовать виджет canvas , entry или Text для создания текстовой области. В нашем случае мы использовали виджет Text.
- Когда пространство для записи готово, нам нужно создать кнопки действий для сохранения файла.
- диалоговое окно файла модуль будет использоваться для открытия проводника для сохранения или открытия файла.
- Теперь конечному пользователю нужно ввести текст в предоставленное место для записи, и когда он нажмет кнопку «Сохранить», откроется проводник, и он сможет сохранить файл в нужном месте.
- Чтобы увидеть реализацию, обратитесь к нашему разделу Python Tkinter «Сохранить в текстовый файл».
Python Tkinter Закрыть текстовый файл
- При запуске любой операции важно определить, когда она будет закрыта.
- Закрытие текстового файла важно и считается хорошей практикой.
- Каждый раз, когда мы открываем файл, он входит в операцию. Система считает, что мы над ней работаем, поэтому ей выделяются некоторые ресурсы. Закрытие файла сообщает компьютеру, что задача выполнена и теперь файл свободен.
- Вы не заметите никакой разницы при выполнении программы без закрытия файла. Но если вы будете работать над более крупными проектами с другими базами данных, вы заметите разницу.
- Поэтому рекомендуется закрывать файл после использования.
Синтаксис:
f = open("file_path", "mode")
-------
-------
f.close()