Как сделать директории и поддиректории из списка?

У меня есть список(пример):

['/one/start/push/index.php', 
 '/one/end/sk/big.css', 
 '/image/img/back/earth.jpg', 
 '/one/start/push/main.css']

Я хотел чтобы у меня вывод в консоли был как директория:

one
 ↳start
  ↳push
   ↳index.php
   ↳main.css
 ↳end
  ↳sk
   ↳big.css
image
 ↳img
  ↳back
   ↳earth.jpg

Перепробовал уже много вариантов, но все не работают или работают но не так, как надо!
Пожалуйста помогите!
Создание директорий не подходит, просто нужен вывод из списка в форме директории!


Ответы (1 шт):

Автор решения: GrAnd
ff = ['/one/start/push/index.php', 
      '/one/end/sk/big.css', 
      '/image/img/back/earth.jpg', 
      '/one/start/push/main.css']

# функция создания структуры иерархии
# каждый элемент словаря содержит список (set) имён непосредственных поддиректорий или файлов
def make_struct(files):
    struct = {}
    for f in files:
        rest = f.strip("/")
        path = ()
        while rest:
            first, rest, *_ = rest.split("/",1) + [None]
            struct[path] = struct.get(path, set()) | {first}
            path += (first,)
    return struct

# функция печати иерархии
def print_struct(struct, path=tuple()):
    if path in struct:
        for dir in sorted(struct[path]):        # если сортировка не нужна, то можно без sorted()
            print(f"{'  '*len(path)}{dir}")     # печатаем имя директории
            print_struct(struct, path + (dir,)) # идем рекурсивно на следующий подуровень

print_struct(make_struct(ff))
image
  img
    back
      earth.jpg
one
  end
    sk
      big.css
  start
    push
      index.php
      main.css
→ Ссылка