Сохраняем структуру проекта в файл — аналог tree

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonструктура проектаtree

👁 В проектах с большим количеством файлов легко потеряться. Особенно если структура нестандартная: автогенерируемые каталоги, временные 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

Скриншот примера: Python-скрипт print_tree и фрагмент вывода в стиле tree; виден код, тёмная тема редактора и логотип RECURA.
Скриншот примера Python-скрипта print_tree и формат вывода, сохраняемого в tree.txt.

Читайте так же