-
Notifications
You must be signed in to change notification settings - Fork 0
/
path_tree.py
44 lines (34 loc) · 1.3 KB
/
path_tree.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""cria um path tree para o folder atual desse script"""
import os
import sys
sys.stdout.reconfigure(encoding='utf-8')
def print_directory_tree(root_dir, padding=''):
"""
Imprime a árvore de diretórios a partir do diretório especificado.
Args:
root_dir (str): O caminho para o diretório raiz a ser impresso.
padding (str, optional): O espaçamento que será utilizado para identar
os subdiretórios. Default é ''.
Returns:
None
"""
# Obter o nome da pasta raiz
head, tail = os.path.split(root_dir)
if tail == ".git":
return
print(padding[:-1] + '+--' + tail + '/')
# Listar os arquivos e pastas dentro do diretório raiz
file_list = os.listdir(root_dir)
# Ordenar a lista para que as pastas apareçam primeiro
file_list.sort(key=lambda x: os.path.isdir(os.path.join(root_dir, x)))
# Percorrer a lista de arquivos e pastas
for file_name in file_list:
full_path = os.path.join(root_dir, file_name)
# Se for uma pasta, chamar a função recursivamente
if os.path.isdir(full_path):
print_directory_tree(full_path, padding + '| ')
# Se for um arquivo, imprimir o nome
else:
print(padding + '|-- ' + file_name)
# Exemplo de uso
print_directory_tree('.')