Skip to content

Latest commit

 

History

History
99 lines (95 loc) · 2.92 KB

README.md

File metadata and controls

99 lines (95 loc) · 2.92 KB

Print directory structure for requested folder or pipe it to an output file.

For example,

> python pdt\pdt.py .
-\
 ├─ LICENSE.txt
 ├─ README.md
 ├─ test_file.txt
 ├─ __init__.py
 ├─ .git\
 │   ├─ config
 │   ├─ description
 │   ├─ HEAD
 │   ├─ hooks\
 │   │   ├─ applypatch-msg.sample
 │   │   ├─ commit-msg.sample
 │   │   ├─ fsmonitor-watchman.sample
 │   │   ├─ post-update.sample
 │   │   ├─ pre-applypatch.sample
 │   │   ├─ pre-commit.sample
 │   │   ├─ pre-merge-commit.sample
 │   │   ├─ pre-push.sample
 │   │   ├─ pre-rebase.sample
 │   │   ├─ pre-receive.sample
 │   │   ├─ prepare-commit-msg.sample
 │   │   ├─ push-to-checkout.sample
 │   │   └─ update.sample
 │   ├─ info\
 │   │   └─ exclude
 │   ├─ objects\
 │   │   ├─ info\
 │   │   └─ pack\
 │   └─ refs\
 │       ├─ heads\
 │       └─ tags\
 └─ pdt\
     ├─ pdt.py
     └─ __init__.py

or the output can be piped to a file:

> python pdt.py . -o test_output
> 

The script accepts a list of arguments:

> python pdt.py -h
usage: pdt.py [-h] [-p PATH] [-o OUTPUT_FILE] [-d DEPTH] [-f] path

Print directory structure for requested folder or pipe it to a folder

positional arguments:
  path

optional arguments:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  Directory tree will begin at this path (default:
                        current directory
  -o OUTPUT_FILE, --output-file OUTPUT_FILE
                        If specified, directory tree will be written to this
                        file
  -d DEPTH, --depth DEPTH
                        Maximum depth to recurse (default: 5). Set to -1 to
                        recurse all the way to the bottom
  -f, --filter-hidden   Filter hidden files and folders (default: False)

Lastly, it can also be installed:

pip install .

and can be imported in Python:

>>> from pathlib import Path
>>> from pdt.pdt import create_dir_tree
>>> this_path, current_depth, max_depth, total_folders, folder_count, current_depth_prefix, filter_hidden = Path('.'), 0, 2, 1, 1, '', True
>>> create_dir_tree(this_path, current_depth, max_depth, total_folders, folder_count, current_depth_prefix, filter_hidden)
\
├─ LICENSE.txt
├─ README.md
├─ setup.py
├─ build\
│       └─ lib\
├─ pdt\
│       ├─ __init__.py
│       ├─ pdt.py
│       └─ __pycache__\
│               ├─ __init__.cpython-37.pyc
│               ├─ __init__.cpython-39.pyc
│               ├─ pdt.cpython-37.pyc
│               └─ pdt.cpython-39.pyc
├─ pdt.egg-info\
│       ├─ PKG-INFO
│       ├─ SOURCES.txt
│       ├─ dependency_links.txt
│       └─ top_level.txt
└─ __pycache__\
      └─ pdt.cpython-37.pyc