You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

wintree

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wintree

A lightweight Python library and CLI tool for displaying visually structured directory trees with optional emoji and exclusion filters.

0.1.17
pipPyPI
Maintainers
1

📁🌳 wintree

PyPI Downloads

This library was born out of the limitations of the default Windows tree command. wintree is a Python library that displays the directory structure in a tree format for any specified path. It can be easily used from the command line and supports features like emoji-based visual tree rendering and directory exclusion. Additionally, it can output the tree structure as JSON, making it suitable for integration with GUI applications.

🔋 Install

pip install wintree

🚀 Usage

📚️ As a Library

import wintree

print(wintree.tree())
# sample output
📂 root: .
├── 📄 .gitignore
├── 📄 README.md
├── 📄 pyproject.toml
├── 📁 src/
│   ├── 📁 assets/
│   │   ├── 📄 icon.png
│   │   └── 📄 splash_android.png
│   └── 📄 main.py
└── 📁 storage/
    ├── 📁 data/
    └── 📁 temp/

With arguments:

from wintree import tree

print(tree(root_dir="/path/to/project", use_emoji=True, ignore_dirs=[".git", "__pycache__"], filter_exts=[".py",".txt"]))
ArgumentTypeDescription
root_dirstrPath to the root directory to start displaying the tree. Default is the current directory "."
use_emojiboolWhether to use emojis in the tree view. If True, adds icons to folders and files.
ignore_dirsList[str]List of directory names to exclude from the tree (partial match). Example: [".git", "node_modules"]
filter_extList[str]File extensions to include. Example: [".py", "txt"]

Get or save as JSON

# Get as a dictionary
data = wintree.tree_to_dict(show_meta=True)

# Save as a JSON file
wintree.tree_to_json(root_dir="path/to/project" ,save_path="path/to/project_tree.json")

You can also list file paths vertically as relative or absolute paths from the root directory, instead of using a tree structure.

import wintree

print(wintree.list_files())

⚙️ Usage from CLI

wintree /path/to/project --exclude .git __pycache__

Options

OptionDescription
pathPath to the root directory
--no-emojiDisable emoji display
--excludeSpecify directory names to exclude (partial match, space-separated)
--extFile extensions to include
--no-treeList absolute paths instead of a tree structure
--absOutput absolute file paths
--json-outputPath to save the file hierarchy in
--show-metaInclude timestamp and file size in JSON output

📌 Features

  • Emoji-based tree view for better visibility
  • Flexible exclusion of target directories
  • Supports Windows/macOS/Linux
  • Pure Python, no external dependencies

🧪 For Developers

This library can also be used as a base for directory visualization tools. Integration with GUI tools or IDE plugins is also possible.

📄 License

MIT License

🌐 Language

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts