J'ai créé une fonction pour afficher la structure arborescente des fichiers et des répertoires sur Python comme un arbre de commandes, alors prenez note.
Donnez à la fonction suivante le chemin du répertoire que vous souhaitez afficher dans l'arborescence. Comme il est implémenté pour Mac, il n'est pas pris en charge lorsque les chemins ne sont pas séparés par des barres obliques.
import pathlib
import glob
import os
def tree(path, layer=0, is_last=False, indent_current=' '):
if not pathlib.Path(path).is_absolute():
path = str(pathlib.Path(path).resolve())
#Afficher le répertoire actuel
current = path.split('/')[::-1][0]
if layer == 0:
print('<'+current+'>')
else:
branch = '└' if is_last else '├'
print('{indent}{branch}<{dirname}>'.format(indent=indent_current, branch=branch, dirname=current))
#Obtenez le chemin de la hiérarchie inférieure
paths = [p for p in glob.glob(path+'/*') if os.path.isdir(p) or os.path.isfile(p)]
def is_last_path(i):
return i == len(paths)-1
#Afficher récursivement
for i, p in enumerate(paths):
indent_lower = indent_current
if layer != 0:
indent_lower += ' ' if is_last else '│ '
if os.path.isfile(p):
branch = '└' if is_last_path(i) else '├'
print('{indent}{branch}{filename}'.format(indent=indent_lower, branch=branch, filename=p.split('/')[::-1][0]))
if os.path.isdir(p):
tree(p, layer=layer+1, is_last=is_last_path(i), indent_current=indent_lower)
Par exemple, considérons le cas où le répertoire appelé Test est configuré comme suit.
Quand tree est exécuté à ce moment, il ressemble à ceci.
tree('/hogehoge/Test')
Résultat de sortie
<Test>
├<Test_01>
│ ├ccccc.txt
│ └bbbbb.txt
├<Test_02>
├<Test_03>
└aaaaa.txt
Le résultat est le même même si vous le spécifiez avec un chemin relatif.
tree('./') # /hogehoge/Exécuter avec test
Résultat de sortie
<Test>
├<Test_01>
│ ├ccccc.txt
│ └bbbbb.txt
├<Test_02>
├<Test_03>
└aaaaa.txt
Recommended Posts