Skip to main content

A CLI utility to print the directory tree structure with customizable exclusions.

Project description

PrintDirTree

printdirtree is a command-line utility that prints the structure of a directory tree, allowing you to easily specify files and directories to exclude.

You can now also print the contents of all files, which is very useful for prompting LLMs.

Example:

$ printdirtree
PrintDirTree
├── MANIFEST.in
├── README.md
├── printdirtree
│   ├── __init__.py
│   └── __main__.py
└── setup.py

This tool is very useful to aid with prompting ChatGPT.

Installation

Install printdirtree easily with pip:

pip install printdirtree

Usage

To use printdirtree, simply run the command followed by optional arguments to tailor the output to your needs. The basic usage prints the current directory structure:

printdirtree

Specifying a Directory

To print the structure of a specific directory:

printdirtree --dir /path/to/directory

Excluding Directories and Files

Exclude specific directories and/or file patterns:

printdirtree --exclude-dir node_modules --exclude-dir .git --exclude-file "*.log"

Saving Preferences

To save your exclusions for future runs:

printdirtree --exclude-dir temp --exclude-file "*.tmp" --save

Viewing Current Exclusions

See what exclusions are currently saved:

printdirtree --view-exclusions

Including Directories and Files Back

To remove exclusions and include directories or files back into the printout:

printdirtree --include-dir temp --include-file "*.tmp" --save

Showing File Contents

To display both the directory structure and the contents of all files:

printdirtree --show-contents

This will output the directory tree followed by each file's contents with its relative path as a comment. For example:

temp
├── a.py
└── b.py

# temp/a.py
print("a.py")

# temp/b.py
print("b.py")

This is particularly useful when sharing code with LLMs, as it provides both structure and content in a clear, readable format.

Example Usage

After installing printdirtree, you can run it to visualize the structure of your project directory. Here's an example command that excludes .git files:

printdirtree --exclude-file ".git"

Output for the PrintDirTree project might look like this:

PrintDirTree
├── MANIFEST.in
├── README.md
├── printdirtree
│   ├── __init__.py
│   └── __main__.py
└── setup.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

printdirtree-0.1.5.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

printdirtree-0.1.5-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file printdirtree-0.1.5.tar.gz.

File metadata

  • Download URL: printdirtree-0.1.5.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.6

File hashes

Hashes for printdirtree-0.1.5.tar.gz
Algorithm Hash digest
SHA256 5a88fdbc83bd107ccc700c9de47147c78d4dfa97f497a3b8b117af021320e3d2
MD5 4c740a8e96f06db0605786d1de7ddef4
BLAKE2b-256 bf894a6b7e981bf75022a5f5b935becc872de3b57019c40c653995b220e83887

See more details on using hashes here.

File details

Details for the file printdirtree-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: printdirtree-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.6

File hashes

Hashes for printdirtree-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 797347dcb3e03f2b5d471a56b6e93ef0573cbfd42276eeaa9b7bb153d2e2bfbd
MD5 70c6b3242b8cd6151b3dd90e0c00654f
BLAKE2b-256 da5bb787264aada3ac40e1fd99e8111ce4f15c7ceab3a7e3f4200c3306125223

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page