Создание дерева каталогов и подача его в качестве входных данных для повторного создания того же дерева - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь получить дерево каталогов только из корневой папки на сервере.Затем передайте вывод другой программе, чтобы она создала такую ​​же структуру для другого сервера.

Сложный путь - создать JSON-подобную структуру дерева, а затем проанализировать ее на другом сервере и создать папки.

Есть ли какой-нибудь питонный способ сделать это?

1 Ответ

1 голос
/ 30 июня 2019

Почему JSON?Вы можете создать просто список каталогов, например, с помощью этого скрипта:

import os

def print_dir(path):
    with os.scandir(path) as it:
        for entry in it:
            if entry.is_dir():
                d = os.path.join(path, entry.name)
                yield d
                yield from print_dir(d)

for d in print_dir('/'):
    print(d)

Это печатает все дерево каталогов из корня ('/'):

/lib
/lib/crda
/lib/crda/pubkeys
/lib/terminfo
/lib/terminfo/m
/lib/terminfo/c
/lib/terminfo/x
/lib/terminfo/E
...etc.

Затем вы отправляете этоПеречислите его на сервер, где вы будете читать его построчно и запускать mkdir с аргументом -p (создать родителей, ошибок нет, если они существуют, создать родительские каталоги по мере необходимости).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...