Skip to content

Instantly share code, notes, and snippets.

@sertdfyguhi
Last active April 21, 2023 16:32
Show Gist options
  • Save sertdfyguhi/4be27e59d061ec84eb94a78933be5119 to your computer and use it in GitHub Desktop.
Save sertdfyguhi/4be27e59d061ec84eb94a78933be5119 to your computer and use it in GitHub Desktop.
ascii directory tree generator (shit code)
from ntpath import basename
import os
def dir_dict(p = '.'):
res = {}
for path in os.listdir(p):
if os.path.isdir(f'{p}/{path}'):
res[path] = dir_dict(f'{p}/{path}')
else:
res[path] = None
return res
def tree(directory = os.getcwd(), pad = ''):
res = f'{basename(directory)}/'
d = dir_dict(directory)
for i, k in enumerate(d):
if d[k] == None:
res += f'\n{pad} {"├──" if len(d) - 1 > i else "└──"} {k}'
else:
p = f"{pad} {'│' if len(d) - 1 > i else ' '} "
res += f'\n{pad} {"├──" if len(d) - 1 > i else "└──"} {tree(f"{directory}/{k}", p)}'
return res
print(tree())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment