Folder Trees Generator - a Simple Python Script to Generate Folder Trees in TXT file.
by Friedx - Thursday December 19, 2024 at 06:40 AM
#1
Hi everyone! 

I’ve built a tool called Folder Tree Generator by Friedx , which lets you easily generate and export folder structures as text files. It’s perfect for organizing, documenting, or analyzing directory hierarchies. 

Features:
- Generate a folder tree for any directory. 
- Preview the folder structure in the app. 
- Export the structure as a `.txt` file. 

import os import tkinter as tk from tkinter import filedialog, messagebox, ttk def generate_folder_tree(path, depth=None, exclude=None):     exclude = exclude or []     tree_lines = []     def walk_dir(dir_path, prefix="", level=0):         if depth is not None and level > depth:             return         try:             entries = sorted(os.listdir(dir_path))         except PermissionError:             return         for i, entry in enumerate(entries):             if entry in exclude:                 continue             full_path = os.path.join(dir_path, entry)             connector = "\u251c\u2500\u2500 " if i < len(entries) - 1 else "\u2514\u2500\u2500 "             tree_lines.append(f"{prefix}{connector}{entry}")             if os.path.isdir(full_path):                 extension = "\u2502  " if i < len(entries) - 1 else "    "                 walk_dir(full_path, prefix + extension, level + 1)     tree_lines.append(path)     walk_dir(path)     return "\n".join(tree_lines) def save_tree_to_file(tree, folder_name, save_location):     file_path = os.path.join(save_location, f"{folder_name}.txt")     with open(file_path, "w", encoding="utf-8") as file:         file.write(tree) def browse_folder():     folder_path = filedialog.askdirectory(title="Select Folder")     if folder_path:         folder_path_var.set(folder_path)         preview_folder_tree() def choose_save_location():     save_location = filedialog.askdirectory(title="Select Save Location")     if save_location:         save_location_var.set(save_location) def preview_folder_tree():     folder_path = folder_path_var.get()     if folder_path:         try:             tree = generate_folder_tree(folder_path)             preview_text.delete(1.0, tk.END)             preview_text.insert(tk.END, tree)         except Exception as e:             messagebox.showerror("Error", f"An error occurred: {e}") def export_tree():     folder_path = folder_path_var.get()     save_location = save_location_var.get()     if not folder_path:         messagebox.showwarning("Warning", "Please select a folder.")         return     if not save_location:         messagebox.showwarning("Warning", "Please select a save location.")         return     try:         folder_name = os.path.basename(folder_path)         tree = generate_folder_tree(folder_path)         save_tree_to_file(tree, folder_name, save_location)         messagebox.showinfo("Success", f"Folder tree exported to {save_location}")     except Exception as e:         messagebox.showerror("Error", f"An error occurred: {e}") # Main application window root = tk.Tk() root.title("Folder Tree Generator by Friedx") # Variables folder_path_var = tk.StringVar() save_location_var = tk.StringVar() # Interface elements frame = ttk.Frame(root, padding="10") frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S)) folder_label = ttk.Label(frame, text="Folder:") folder_label.grid(row=0, column=0, sticky=tk.W) folder_entry = ttk.Entry(frame, textvariable=folder_path_var, width=50) folder_entry.grid(row=0, column=1, sticky=(tk.W, tk.E)) folder_button = ttk.Button(frame, text="Browse...", command=browse_folder) folder_button.grid(row=0, column=2, sticky=tk.E) save_label = ttk.Label(frame, text="Save Location:") save_label.grid(row=1, column=0, sticky=tk.W) save_entry = ttk.Entry(frame, textvariable=save_location_var, width=50) save_entry.grid(row=1, column=1, sticky=(tk.W, tk.E)) save_button = ttk.Button(frame, text="Browse...", command=choose_save_location) save_button.grid(row=1, column=2, sticky=tk.E) preview_label = ttk.Label(frame, text="Preview:") preview_label.grid(row=2, column=0, sticky=tk.W) preview_text = tk.Text(frame, height=20, width=80) preview_text.grid(row=3, column=0, columnspan=3, pady=10) export_button = ttk.Button(frame, text="Export Tree", command=export_tree) export_button.grid(row=4, column=0, columnspan=3, pady=10) # Configure resizing root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) frame.columnconfigure(1, weight=1) root.mainloop()



Libraries Used:
- `os` (built-in) 
- `tkinter` (built-in) 
- `ttk` (built-in) 

No external dependencies! 

How to Use:
1. Ensure Python 3.x is installed
2. Save the script with the name folder_tree_generator_by_friedx.py
3. Run the script with: 

python folder_tree_generator_by_friedx.py


4. Use the GUI to select a folder and export the tree! 


Virustotal Score
https://www.virustotal.com/gui/file-analysis/ZDY2YzEwYzNkOTcxYTdiM2I0ZmRmMDNlYWFiZTkxNmY6MTczNDU5MDMxNg==

Let me know your feedback or suggestions! 
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Mullvad Account Checker 2025 [PYTHON] Dimitry 48 1,695 02-10-2026, 05:56 PM
Last Post: nobodycares
  Python based Stealer Logs Parser Loki 91 6,095 02-10-2026, 05:55 PM
Last Post: WickedRamBystander23
  Automatic File Extension Spoofer [SRC] Cracked 6 440 02-07-2026, 09:44 PM
Last Post: silent404
  ⭐ [Python] Seed Phrase Parser from stealer logs - Source code ⭐ SeedHunter 47 2,053 02-03-2026, 12:41 PM
Last Post: mert385838
  Python Based Automated XSS Testing Tool Loki 39 2,764 01-28-2026, 10:19 PM
Last Post: IntelShadow



 Users browsing this thread: 1 Guest(s)