How to save the contents of a Textbox in Tkinter?

To save the contents of a Textbox in Tkinter, you can create functions that read from and write to text files. This allows users to load existing content and save their changes.

Basic Steps

Follow these steps to implement text saving functionality −

  • Create an instance of tkinter frame and set window size

  • Define a function to open and read a text file, then insert content into the Textbox

  • Define a function to save the Textbox contents to a text file

  • Create a Text widget with specified dimensions

  • Add buttons to trigger the open and save functions

  • Run the application mainloop

Complete Example

Here's a working example that demonstrates saving and loading text file contents ?

# Import tkinter library
import tkinter as tk
from tkinter import messagebox
import os

# Create an instance of tkinter window
win = tk.Tk()
win.title("Text Editor - Save/Load")
win.geometry("700x400")

def open_text():
    try:
        # Create test.txt if it doesn't exist
        if not os.path.exists("test.txt"):
            with open("test.txt", "w") as f:
                f.write("Welcome to the text editor!\nType your content here.")
        
        # Open and read the text file
        with open("test.txt", "r") as text_file:
            content = text_file.read()
            my_text_box.delete(1.0, tk.END)  # Clear existing content
            my_text_box.insert(tk.END, content)
        
        messagebox.showinfo("Success", "File opened successfully!")
        
    except Exception as e:
        messagebox.showerror("Error", f"Could not open file: {str(e)}")

def save_text():
    try:
        # Save the textbox content to file
        with open("test.txt", "w") as text_file:
            content = my_text_box.get(1.0, tk.END)
            text_file.write(content)
        
        messagebox.showinfo("Success", "File saved successfully!")
        
    except Exception as e:
        messagebox.showerror("Error", f"Could not save file: {str(e)}")

# Creating a text box widget
my_text_box = tk.Text(win, height=15, width=70, font=("Arial", 12))
my_text_box.pack(pady=10)

# Create button frame
button_frame = tk.Frame(win)
button_frame.pack(pady=5)

# Create buttons
open_btn = tk.Button(button_frame, text="Open Text File", command=open_text, 
                     bg="lightblue", padx=20)
open_btn.pack(side=tk.LEFT, padx=5)

save_btn = tk.Button(button_frame, text="Save File", command=save_text, 
                     bg="lightgreen", padx=20)
save_btn.pack(side=tk.LEFT, padx=5)

# Start with some default text
my_text_box.insert(tk.END, "Click 'Open Text File' to load content or start typing...")

win.mainloop()

Key Methods

The example uses these important Tkinter Text widget methods ?

  • insert(position, text) − Inserts text at the specified position

  • get(start, end) − Retrieves text between start and end positions

  • delete(start, end) − Removes text between start and end positions

  • tk.END − Refers to the end of the text content

Error Handling

The improved version includes proper error handling using try-except blocks and shows user-friendly message boxes for success and error notifications.

Output

When you run the code, you'll see a text editor window with two buttons. The application automatically creates a test file if it doesn't exist and provides feedback when operations complete successfully.

Conclusion

Use the Text widget's get() method to retrieve content and insert() to load content from files. Always include error handling when working with file operations to provide a better user experience.

Updated on: 2026-03-26T18:30:02+05:30

8K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements