Skip to content

rahulbordoloi/Directory-Tree

Directory Tree Package

Setup Automated Test passing Python Version PyPI version Last Commit

About

Want to Display your Project / Current Working Directory as a Neat Tree? No Worries!

Directory Tree is a simple python utility package that displays out the Tree Structure of a User Defined Directory.

Currently Available for All Platforms.

Installation

Run the Following Command on your Terminal to Install directory_tree:

1 . Installing the Package using pip:

pip install directory_tree

OR

pip3 install directory_tree

2 . Cloning the Repository:

git clone https://github.com/rahulbordoloi/Directory-Tree/
cd Directory-Tree
pip install -e .

You can use either of the above methods to install directory_tree.

Usage

Function Signature

DisplayTree(
    dirPath: str='',
    stringRep: bool=False,
    header: bool=False,
    maxDepth: float=float('inf'),
    showHidden: bool=False,
    ignoreList: List[str]=None,
    onlyFiles: bool=False,
    onlyDirs: bool=False,
    sortBy: int=0
) -> Union[str, None]:

Arguments Description

Parameters CLI Parameters Description
dirPath directory Root Path of Operation. By Default, Refers to the Current Working Directory.
stringRep N/A Boolean Flag for Direct Console Output or a String Return of the Same. By Default, It Gives out Console Output.
header --header Boolean Flag for Displaying [OS & Directory Path] Info in the Console. Not Applicable if stringRep=True.
maxDepth -L, --max-depth Max Depth of the Directory Tree. By Default, It goes upto the Deepest Directory/File.
showHidden -a, --show-hidden Boolean Flag for Returning/Displaying Hidden Files/Directories if Value Set to True.
ignoreList -I, --ignore-list List of File and Directory Names or Patterns to Ignore.
onlyFiles -f, --only-files Boolean Flag to Display Only Files
onlyDirs -d, --only-dirs Boolean Flag to Display Only Directories
sortBy --sort-by Sorting order. Possible Options: 0 - Default, 1 - Files First, 2 - Directories First
raiseException --raise-exception Boolean Flag to Raise Exception. By Default, It Doesn't Raise Exception
printErrorTraceback --print-error-traceback Boolean Flag to Print Error Traceback. By Default, It Doesn't Print Error Traceback

Command Line

  1. Treating the Cloned Directory as Executable -
    (Works if you've cloning privileges but not of installation. You can clone the repo, go to its root and run the below)
python directory_tree

OR

python -m directory_tree

Use the inline help for command-line options:

python directory_tree --help
  1. Treating the Package as Module -
    (You would need to install (pip) the Python Package in your system for the below to work)
directory_tree

Use the inline help for command-line options:

directory_tree --help

In Code

Example Script to Print out the Tree Structure of a User-Defined Directory directoryPath!

# Importing Libraries
from directory_tree import DisplayTree

# Main Method
if __name__ == '__main__':
    DisplayTree(directoryPath)
  • Here by default, the directoryPath is the current working directory (CWD) unless specified by the user.

Output Examples

Sample Directory Tree -

SampleDirectoryTree.png

NOTE - Here, letseee.txt (File) and Directory 4/ (Directory) are HIDDEN in Nature.

  1. For Current Working Directory with Argument [Header Info = False]
from directory_tree import DisplayTree

DisplayTree(header=True)

CWDwithHeader.png

  1. For User Specified Directory with Arguments [String Representation = True, Show Hidden Entities = True]
from directory_tree import DisplayTree

customPath: str = 'Users/rahulbordoloi/Work/Python Packages Maintainence/Directory-Tree/Test/Main Directory'
stringRepresentation: str = DisplayTree(customPath, stringRep=True, showHidden=True)
print(stringRepresentation)

UserSpecifiedDirectoryStrRepShowHidden.png

  1. For Current Working Directory with Argument [Max Depth = 2]
from directory_tree import DisplayTree

DisplayTree(maxDepth=2)

UserSpecifiedDirectoryMaxDep.png

Developing Directory Tree

To install directory_tree, along with the tools you need to develop and run tests, use any of the following commands in your virtualenv:

pip install -e .[dev]

OR

pip install -e ".[dev]"

Deprecation Notice

The display_tree function is deprecated and will be removed in a future release. Please use DisplayTree instead. The end-of-life date for display_tree is December 31, 2024.

Parameters Mapping Table -

New Parameters Deprecated Parameters
dirPath dir_path
stringRep string_rep
maxDepth max_depth
showHidden show_hidden
ignoreList ignore_list
onlyFiles only_files
onlyDirs only_dirs
sortBy sort_by
raiseException raise_exception
printErrorTraceback print_error_traceback

Security & Probable Bugs

  • Directory Tree uses recursion. It will raise a RecursionError on really deep directory trees.
  • As the tree is lazily evaluated, it should behave well on really wide directory trees. Immediate children of a given directory are not lazily evaluated, though. It would be prompted to the last.
  • If you're a Windows user, it is always advised to use \\ instead of \ in the address as using \ might catchup escape sequences and corrupt the address string.

Contact Author

Name : Rahul Bordoloi
Website : https://rahulbordoloi.me
Email : [email protected]

Made with in Python!