Я написал функцию python, которая рекурсивно выводит файлы и папки, но теперь я не уверен, как отображать ее в эстетическом стиле (в обычном тексте). Как вы отображаете структуры папок?
Если вы напишете функцию, чтобы вернуть структуру каталогов в виде вложенного списка, например:
['DIR1/',['fileA','fileB','DIR3/',['fileE','fileF']],'DIR2/',['fileC','fileD']]
то вы можете использовать pprint.pformat
для создания пассивного строкового представления:
import pprint
import textwrap
import re
data=['DIR1/',['fileA','fileB','DIR3/',['fileE','fileF']],'DIR2/',['fileC','fileD']]
print(textwrap.dedent(re.sub(r"[\]\[',]", r' ',
pprint.pformat(data,indent=4,width=1))))
дает
DIR1/
fileA
fileB
DIR3/
fileE
fileF
DIR2/
fileC
fileD
Примечание. В приведенном выше коде предполагается, что ваши имена файлов и каталогов не содержат никаких символов ,[]'
...
pformat
раньше :)
Вы ищете текстовый дисплей командной строки или графический интерфейс?
Для отображения в командной строке просто используйте рекурсивную функцию, передающую переменную "отступ" к рекурсивным вызовам, увеличивая ее для каждого уровня:
toplevel/
level2/
file.txt
file2.txt
level2_again/
file3.txt
Для графического интерфейса - используйте виджет, предоставляемый соответствующей структурой. Например, при PyQt
есть виджет QTreeView
.