Skip to content

Отображаем содержимое папки и выводим содержимое текстовых файлов в отдельный файл для удобной навигации и анализа. Скрипт на Python.

Notifications You must be signed in to change notification settings

baslie/folder-content-printer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

Folder Content Printer

Данный скрипт на Python обходит содержимое указанной директории, строит дерево файлов и папок в стиле ASCII, а затем выводит содержимое только файлов (игнорируя содержимое папок на втором этапе) в результирующий файл.

Как работает скрипт

  1. ASCII-дерево
    Скрипт сначала выводит название корневой папки, а затем строит иерархическую структуру всех вложенных директорий и файлов. Для каждого уровня вложенности используется дополнительный отступ (4 пробела) и символы ├── и └── .

  2. Разделители
    После вывода ASCII-дерева выводится разделитель ---, который повторяется после каждого блока данных (то есть после структуры и после каждого файла). Это обеспечивает наглядное разделение между блоками.

  3. Подробный список файлов

    • Каждому файлу присваивается свой индекс (например, 1., 2., и т.д.). Если внутри папки несколько файлов, нумерация осуществляется в виде 1.1, 1.2 и т.д.
    • Для текстовых файлов (определяются по расширениям из множества TEXT_EXTENSIONS) выводится блок вида:
      1. MD-file "README.md"
      
      <"README.md">
      [Содержимое файла]
      </"README.md">
      
    • Для файлов без расширения (например, CNAME) считается, что файл является текстовым, и он выводится аналогичным образом, с заголовком TXT-file "CNAME".
    • Для нетекстовых файлов (из множества OTHER_EXTENSIONS) выводится только индекс и имя файла без содержимого, например:
      4. image.jpg
      

Использование

  1. Склонируйте репозиторий или загрузите файл print_folder_content.py.

  2. Установите переменную my_folder_path в путь к папке, которую вы хотите просмотреть.

  3. Установите переменную my_output_file в путь к файлу, куда вы хотите сохранить результат.

  4. Запустите скрипт:

    python print_folder_content.py

Пример структуры и вывода

Допустим, у нас есть папка my_folder со следующей структурой:

my_folder/
├── .gitignore
├── README.md
├── CNAME
├── script.py
├── src
│   └── index.html
└── image.jpg

После запуска скрипта в результирующем файле вы увидите примерно следующее:

my_folder/
├── .gitignore
├── README.md
├── CNAME
├── script.py
├── src
    └── index.html
└── image.jpg

---         # Разделитель после структуры

1. .GITIGNORE-file ".gitignore"

<".gitignore">
# Содержимое файла .gitignore
</".gitignore">

---         # Разделитель после блока файла

2. MD-file "README.md"

<"README.md">
# Заголовок из README
[продолжение содержимого...]
</"README.md">

---         # Разделитель

3. TXT-file "CNAME"

<"CNAME">
[Содержимое файла CNAME]
</"CNAME">

---         # Разделитель

4. PY-file "script.py"

<"script.py">
print("Hello, world!")
</"script.py">

---         # Разделитель

5. HTML-file "index.html"

<"index.html">
<html>
  <body>...</body>
</html>
</"index.html">

---         # Разделитель

6. image.jpg

---         # Разделитель после последнего блока

Обратите внимание, что содержимое файлов .gitignore, README.md, CNAME, script.py и index.html выводится «внутри» соответствующих тегов. Файл image.jpg, относящийся к нетекстовому формату, выводится без содержимого.

Настройка расширений

В начале скрипта определены множества:

TEXT_EXTENSIONS = {".txt", ".html", ".js", ".css", ".py", ".json", ".gitignore", ".md"}
OTHER_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".bmp", ".zip", ".rar", ".tar", ".gz", ".7z"}
  • Если расширение файла входит в TEXT_EXTENSIONS, его содержимое будет прочитано и выведено.
  • Если расширение файла входит в OTHER_EXTENSIONS, выводится только имя файла.
  • Файлы без расширения также выводятся, предполагая, что они являются текстовыми.
  • Папки (тип folder) на втором этапе не выводятся – они отображаются только в ASCII-дереве.

Лицензия

Этот проект распространяется по выбранной вами лицензии (MIT, GPL и т.п.). Вы можете свободно изменять и распространять данный скрипт.

About

Отображаем содержимое папки и выводим содержимое текстовых файлов в отдельный файл для удобной навигации и анализа. Скрипт на Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages