👁 В проектах с большим количеством файлов легко потеряться. Особенно если структура нестандартная: автогенерируемые каталоги, временные build-артефакты, отдельные папки под миграции, логи и прочее. Иногда нужно быстро зафиксировать текущее состояние каталогов: для документации, ревью или просто чтобы понять, «что тут вообще происходит».
Этот мини-скрипт на Python собирает древовидную структуру проекта и сохраняет её в читаемый текстовый файл. Удобно, понятно и без лишних зависимостей — работает в любой среде, где есть Python.
📝 Пример кода:
import os
def print_tree(dir_path, prefix=''):
for name in sorted(os.listdir(dir_path)):
full_path = os.path.join(dir_path, name)
print(prefix + '|-- ' + name)
if os.path.isdir(full_path):
print_tree(full_path, prefix + '| ')
with open('tree.txt', 'w') as f:
from contextlib import redirect_stdout
with redirect_stdout(f):
print_tree('.')
📌 Скрипт сохраняет структуру текущего каталога в файл tree.txt. Получается читаемая иерархия вида:
|-- app | |-- models | |-- routes |-- config |-- tests |-- README.md
🔎 Полезно, если:
- Нужно сохранить структуру проекта перед рефакторингом
- Документируешь проект и хочешь вложить схему в README
- Работаешь на Windows/Mac, где нет tree
- Хочешь сравнивать структуру до/после автогенерации
❗️ Такой подход особенно актуален для командной разработки: можно вложить tree.txt в pull request, чтобы проще было понять, какие файлы добавлены, где что лежит и как всё связано.
tags: #python #разработка #полезно
❤️ @recura_tech



