Есть ли модуль python для создания файлового дерева из списка или индекса путей / файлов (не локальной системы) - PullRequest
0 голосов
/ 07 мая 2019

Работа над школьным проектом ... У меня есть объект списка Python (полученный из текстового файла), который содержит полный список каталогов (около 400 КБ элементов).Есть ли модуль для автоматической организации этого списка или текстового файла в древовидную структуру файлов?

Например, корень запускает список "/".с последующим указанием первой папки в нем, вплоть до последнего файла по пути "/folder1/sub-folder_last/lastfile.txt

Это продолжается до самого последнего элемента "/last_folder_in_root" до самой последней подпапки в этом"/last_folder_in_root/last_sub_folder/last_file.txt"

Я искал хорошую отправную точку, но неоднозначность в поиске не дает мне ничего, кроме осмотра и прохождения предметов.Надеюсь, что уже есть что-то, что будет проходить через это и отделять подпункты с помощью вкладки или чего-то подобного.

конечный вывод будет выглядеть примерно так:

/
    /first_folder
        /first_sub_folder
            /file.txt
    /second_folder
    /last_folder
        /last_sub_fodler
             /last_file.txt

Я искал несколько библиотек, но не смог найти одну, которая бы это поддерживала.Это не относится к os.walk, это не для локальной файловой системы.Это из txt-файла или списка.

В основном пытается найти что-то похожее на вывод os.walk, но выводит информацию из списка или файла, а не из локальной системы.Любые идеи или направления для этого?

1 Ответ

0 голосов
/ 07 мая 2019

Вы можете решить это с некоторой логикой

with open('filename.txt') as in_file:
    for line in in_file.readlines():
        as_list = line.split('/')
        # special case for the root
        if len(as_list) == 2 and as_list[0] == '' and as_list[-1] == '\n':
            indent = 0
        else:
            indent = (len(as_list) - 1) * 4 + len(as_list[-1]) + 1
        output = '/{}'.format(as_list[-1].strip('\n'))
        print(output.rjust(indent))

...