A Python CLI utility for visualizing folder trees with sizes and counts.
Project description
pytree
A Python CLI utility for visualizing folder trees with sizes and counts.
Installation
pytree requires Python version 3.10+ in order to run. You can install pytree in your Python environment with the command:
pip install pytree2
Usage
pytree [-h] [-d] [-s] [-c] [-x EXTENSION] [-k KEYWORD] [-l LEVEL] [start_path ...]
pytree - a python cli utility for visualizing folder trees with sizes and counts
positional arguments:
start_path defines path to directory to start building the tree
optional arguments:
-h, --help show this help message and exit
-d, --dirs-only tree displays directories only, and does not show files inside folders
-s, --show-sizes tree displays files and folder sizes, in mega or gigabytes
-c, --show-counts tree displays the number of files or folders inside each directory
-x EXTENSION, --extension EXTENSION
tree will include only files that match given extension (e.g. ".txt", ".pdf")
-k KEYWORD, --keyword KEYWORD
tree will include only files that contain specific keyword on file name
-l LEVEL, --level LEVEL
defines tree's depth (until which subfolder tree will be created) [0=start_path, -1=all]
Examples
Basic usage
pytree test_folder
test_folder
├── another_folder
│ ├── empty_folder
│ └── one_mb_file.txt
└── folder
├── a_python_file.py
├── folder_inside_folder
│ ├── not_a_text_file.pdf
│ ├── ten_kb_file.txt
│ └── two_mb_file.txt
└── ten_mb_file.txt
Using optional arguments
By concatenating the optional arguments, you can get a clear view of the folder structure. Additionally, pytree will print a summary line in the end, with the folder/file count and total size.
pytree test_folder -dcs
test_folder [2] (13 mb)
├── another_folder [2] (1 mb)
│ └── empty_folder [0] (0 bytes)
└── folder [3] (12 mb)
└── folder_inside_folder [3] (2 mb)
5 folders, 6 files, 13 mb
Specifying extension/keyword
You can also specify a search keyword (by passing -x your_extension) or keyword (by passing -k your_keyword), e.g:
pytree test_folder -cs -x .pdf
test_folder [2] (136 bytes)
├── another_folder [1] (0 bytes)
│ └── empty_folder [0] (0 bytes)
└── folder [1] (136 bytes)
└── folder_inside_folder [1] (136 bytes)
└── not_a_text_file.pdf (136 bytes)
5 folders, 6 files (1 valid), 136 bytes
Notice that by using this option together with the -c and -s flags, the counts and sizes in the final summary line will contain a counter for files matching search criteria, and the total size will reflect only matching files, providing an easy and quick way of scanning folders and identifying large files of a specified extension/keyword.
Lines of code
pytree can also be used to obtain the count (and percentage) of lines of code and comments for python files inside input directory, e.g:
pytree test_folder -c --lines-of-code
test_folder [2]
├── another_folder [1]
│ └── empty_folder [0]
└── folder [2]
├── a_python_file.py {2 lines of code (33%), 4 comments (67%)}
└── folder_inside_folder [1]
└── another_python_file.py {4 lines of code (40%), 6 comments (60%)}
5 folders, 7 files (2 valid), 6 lines of code (38%), 10 comments (62%)
This will provide a lines of code and comments count for all .py files in the tree, as well as a summary for the whole directory.
Project details
Release history Release notifications | RSS feed
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 pytree2-0.3.1.tar.gz.
File metadata
- Download URL: pytree2-0.3.1.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e2d32b6674cd66eb1438c8ea1e16c2ca51cc08cb3e0bcdf915328e0c5fad836
|
|
| MD5 |
64cb28acba08c914e9d36650f4bbbc02
|
|
| BLAKE2b-256 |
017ec8e2c17583e47deab9c2b33cd1ebb18ad9d4f5547f87f80cd377ec31382a
|
File details
Details for the file pytree2-0.3.1-py3-none-any.whl.
File metadata
- Download URL: pytree2-0.3.1-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aac43eaad4d04b28fc4532d4000ac40c4368251fb2cb6fbfb3539cc13830511c
|
|
| MD5 |
119ccd041ee0ad194744bdf9a06ba194
|
|
| BLAKE2b-256 |
07de06fc410aed05728c5449b6c086c3b7f532ba0648aeacfa9af50423ea7d09
|