In this tutorial, I will explain how to save text to a file using Python Tkinter. As a developer working on a text editor application for one of my clients I recently faced the challenge of implementing a feature that allows users to save their text content to a file. In this article, I will share my experience and provide a detailed guide on how to achieve this functionality using Tkinter.
Save Text to a File Using Python Tkinter
Tkinter is a useful and user-friendly library for creating graphical user interfaces in Python. It provides a wide range of widgets and tools to build interactive applications. When it comes to file handling, Tkinter offers several dialogs and methods that simplify the process of reading from and writing to files.
To save text to a file using Tkinter, we need to follow these key steps:
Read Python Tkinter Table Tutorial
1. Create the Tkinter Window and Text Widget
First, we need to create a Tkinter window and add a Text widget where the user can enter and edit text. Here’s an example of how to set up the window and Text widget:
import tkinter as tk
window = tk.Tk()
window.title("Text Editor")
text_widget = tk.Text(window)
text_widget.pack()In this code snippet, we import the Tkinter module as tk, create a new window using tk.Tk(), set the window title to “Text Editor,” and create a Text widget using tk.Text(window). The pack() method is used to display the Text widget in the window.
Check out Python Tkinter Quiz – Complete tutorial
2. Implement the “Save” Button
Next, we need to add a “Save” button that the user can click to initiate the file saving process. Here’s an example of how to create a button and associate it with a function that handles the saving functionality:
def save_file():
# Saving logic goes here
pass
save_button = tk.Button(window, text="Save", command=save_file)
save_button.pack()In this code, we define a function save_file() that will contain the logic for saving the text to a file. We create a Button widget using tk.Button(window, text="Save", command=save_file) b, specifying the window as the parent, the button text as “Save,” and the command parameter as the save_file function. The pack() method is used to display the button in the window.
Read Python QR code generator using pyqrcode in Tkinter
3. Prompt the User for File Location and Name
When the user clicks the “Save” button, we want to prompt them to choose a file location and provide a name for the file. Tkinter provides a convenient file dialog asksaveasfilename() that allows us to achieve this. Here’s an example of how to use the file dialog:
import tkinter.filedialog as filedialog
def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
# Saving logic goes here
passIn this updated save_file() function, we use filedialog.asksaveasfilename() to open a file dialog window. The defaultextension parameter is set to “.txt” to default the file extension to .txt, and the filetypes parameter specifies the available file types for saving. The user can choose a location, provide a file name, and click “Save.” The selected file path is stored in the file_path variable.
Check out How to Create a Snake Game in Python Tkinter
4. Write Text Content to the File
Once we have the file path, we can proceed to write the text content from the Text widget to the selected file. Here’s an example of how to accomplish this:
def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
text_content = text_widget.get("1.0", tk.END)
with open(file_path, "w") as file:
file.write(text_content)In the updated save_file() function, we retrieve the text content from the Text widget using text_widget.get("1.0", tk.END). The “1.0” parameter represents the starting position (line 1, character 0), and tk.END represents the end of the text. We then open the file at the specified file_path in write mode using the with statement and the open() function. Finally, we write the text_content to the file using file.write(text_content).
Read Python Tkinter Autocomplete
Put It All Together
Here’s the complete code for saving text to a file using Python Tkinter:
import tkinter as tk
import tkinter.filedialog as filedialog
def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
text_content = text_widget.get("1.0", tk.END)
with open(file_path, "w") as file:
file.write(text_content)
window = tk.Tk()
window.title("Text Editor")
text_widget = tk.Text(window)
text_widget.pack()
save_button = tk.Button(window, text="Save", command=save_file)
save_button.pack()
window.mainloop()This code combines all the elements we discussed earlier. It creates a Tkinter window with a Text widget and a “Save” button. When the user clicks the “Save” button, the save_file() function is called, prompting the user to choose a file location and name. Once the file path is selected, the text content from the Text widget is retrieved and written to the file.
You can see the output in the screenshot below.

Check out Python Tkinter Mainloop
Conclusion
In this tutorial, I helped you learn how to save text to a file using Python Tkinter. I explained the step-by-step process to save text to a file and by putting it all together we can run the code to get the desired output.
You may like to read:
- Python Tkinter Grid grid() method
- Python Tkinter OptionMenu
- Registration form in Python using Tkinter

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.