A Python library for dumping directory contents into a single organized text file. Perfect for code reviews, documentation, and project analysis.
✨ Tree Structure - Displays directory structure in a tree format
📝 Content Dump - Dumps the content of all text files
🔍 Extension Filtering - Filter files by extension
⚡ Binary Detection - Automatically excludes binary files
🔢 Line Numbers - Includes line numbers with a separator for easy reading
🚫 Ignore Patterns - Supports .gitignore-style pattern matching for excluding files and directories
pip install rootdump
Basic usage:
rootdump /path/to/source output.txt
With options:
# Exclude binary files
rootdump /path/to/source output.txt --exclude-binary
# Include only specific extensions
rootdump /path/to/source output.txt --extensions .py .txt .md
# Skip directory tree structure
rootdump /path/to/source output.txt --no-tree
# Exclude line numbers from the output
rootdump /path/to/source output.txt --no-line-numbers
# Use ignore patterns file
rootdump /path/to/source output.txt --ignore-file .dumpignore
Create a .dumpignore
file to exclude specific files and directories. The syntax is similar to .gitignore
:
# Ignore specific directories
node_modules/
.git/
tests/
# Ignore file patterns
*.pyc
*.log
.DS_Store
# Ignore specific files
config.json
secrets.yaml
from rootdump import dump_directory
# Basic usage
dump_directory("source_dir", "output.txt")
# With options
dump_directory(
"source_dir",
"output.txt",
exclude_binary=True,
include_extensions=[".py", ".txt"],
show_tree=True,
show_line_numbers=True,
ignore_file=".dumpignore" # Use ignore patterns file
)
# Directory structure:
# .
# ├── src/
# │ ├── __init__.py
# │ └── main.py
# ├── tests/
# │ └── test_main.py
# └── README.md
## src/__init__.py
1 | def hello():
2 | print("Hello from src/__init__.py")
## src/main.py
1 | def main():
2 | print("Hello from src/main.py")
3 |
4 | if __name__ == "__main__":
5 | main()
Contributions are welcome! Feel free to:
This project was inspired by uithub.com’s project structure visualization.
This project is licensed under the MIT License - see the LICENSE file for details.