创建目录树并将其作为输入提供,以再次创建相同的树

时间:2019-06-29 21:17:12

标签: python-3.x directory automation

我试图仅从服务器的根文件夹中获取目录树。然后将输出提供给另一个程序,这样它将为另一个服务器创建相同的结构。

最困难的方法是创建类似于JSON的树形结构,然后将其解析到另一台服务器并创建文件夹。

有什么Python方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

为什么要使用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(创建父目录,如果没有错误,则根据需要创建父目录)。