Как прочитать текстовый файл с помощью Python Tkinter

В этом руководстве по 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()