Python Tkinter file explorer - Browse and display folder contents
Python Tkinter Events and Event Handling: Exercise-7 with Solution
Write a Python program that implements a file explorer application using Tkinter. Allow users to select a folder, and when a folder is selected, display its contents in a Listbox.
Sample Solution:
Python Code:
import tkinter as tk
from tkinter import filedialog
import os
# Function to update the Listbox with folder contents
def browse_folder():
folder_path = filedialog.askdirectory() # Open a folder selection dialog
if folder_path:
folder_contents.delete(0, tk.END) # Clear the Listbox
for item in os.listdir(folder_path):
folder_contents.insert(tk.END, item) # Insert folder contents into Listbox
# Create the main window
root = tk.Tk()
root.title("File Explorer")
# Create a button to browse for a folder
browse_button = tk.Button(root, text="Browse Folder", command=browse_folder)
browse_button.pack(pady=10)
# Create a Listbox to display folder contents
folder_contents = tk.Listbox(root, selectmode=tk.SINGLE)
folder_contents.pack(fill=tk.BOTH, expand=True)
# Create a scrollbar for the Listbox
scrollbar = tk.Scrollbar(folder_contents, orient=tk.VERTICAL)
scrollbar.config(command=folder_contents.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
folder_contents.config(yscrollcommand=scrollbar.set)
# Start the Tkinter main loop
root.mainloop()
Explanation:
In the exercise above -
- Import the "tkinter" library and other necessary modules ("filedialog" and "os").
- Define a function "browse_folder()" that opens a folder selection dialog using "filedialog.askdirectory()". If a folder is selected, it clears the 'Listbox'(folder_contents) and populates it with the contents of the selected folder using "os.listdir".
- Create the main window and set its title.
- Create a "Browse Folder" button that, when clicked, calls the "browse_folder()" function to select a folder.
- Create a Listbox (folder_contents) to display the folder's contents, allowing single selection (selectmode=tk.SINGLE).
- Create a scrollbar for the Listbox and configure it to work with the Listbox's y-axis scrolling.
- Finally, start the Tkinter main loop with "root.mainloop()".
Output:
Flowchart:
Python Code Editor:
Previous: Python Tkinter name input and message display.
Next: Open and Save Text Files.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/tkinter/python-tkinter-events-and-event-handling-exercise-7.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics