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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a88fdbc83bd107ccc700c9de47147c78d4dfa97f497a3b8b117af021320e3d2
|
|
| MD5 |
4c740a8e96f06db0605786d1de7ddef4
|
|
| BLAKE2b-256 |
bf894a6b7e981bf75022a5f5b935becc872de3b57019c40c653995b220e83887
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
797347dcb3e03f2b5d471a56b6e93ef0573cbfd42276eeaa9b7bb153d2e2bfbd
|
|
| MD5 |
70c6b3242b8cd6151b3dd90e0c00654f
|
|
| BLAKE2b-256 |
da5bb787264aada3ac40e1fd99e8111ce4f15c7ceab3a7e3f4200c3306125223
|