In this video I’ll show you how to save data from your Tkinter app to a Dat File instead of a database!
Databases are complicated! Wouldn’t it be easier to just save your basic data to a single file that you can open in your app whenever you want?
The Pickle Module allows us to save to a dat file easily, and then load the data from the dat file just as easily. In this video we’ll look at saving and loading data to a dat file from both a Tkinter Text Widget as well as a Tkinter Listbox.
Python Code: save_dat.py
(Github Code)
from tkinter import *
import pickle
root = Tk()
root.title('Codemy.com - Save To Dat File!')
root.iconbitmap('c:/gui/codemy.ico')
root.geometry("500x400")
# Creating a list of sizes
sizes = [
"Small",
"Medium",
"Large"
]
#my_text = Text(root, width=40, height=10)
#my_text.pack(pady=20)
my_list = Listbox(root)
my_list.pack(pady=20)
for item in sizes:
my_list.insert(END, item)
def save_file():
# Grab the stuff from our text box
stuff = my_list.get(0, END)
# Define a filename
filename = "data/dat_stuff"
#Open the file
output_file = open(filename, 'wb')
# Actually add the data to the file
pickle.dump(stuff, output_file)
def open_file():
# Define a filename
filename = "data/dat_stuff"
#Open the file
input_file = open(filename, 'rb')
# Load the data from the file into a variable
stuff = pickle.load(input_file)
# Output to list box
for item in stuff:
my_list.insert(END, item)
print(stuff)
# Delete from list box
def delete_items():
my_list.delete(0, END)
my_button1 = Button(root, text="Save File", command=save_file)
my_button2 = Button(root, text="Open File", command=open_file)
my_button3 = Button(root, text="Delete Items", command=delete_items)
my_button1.pack(pady=20)
my_button2.pack(pady=20)
my_button3.pack(pady=20)
root.mainloop()

Add comment