Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 创建一个目录树并将其作为输入馈送,以再次创建同一棵树_Python 3.x_Directory_Automation - Fatal编程技术网

Python 3.x 创建一个目录树并将其作为输入馈送,以再次创建同一棵树

Python 3.x 创建一个目录树并将其作为输入馈送,以再次创建同一棵树,python-3.x,directory,automation,Python 3.x,Directory,Automation,我正在尝试仅从服务器中的根文件夹获取目录树。然后将输出馈送到另一个程序,以便它将相同的结构创建到另一个服务器 困难的方法是创建一个类似JSON的树结构,然后将其解析到另一台服务器并创建文件夹 有什么pythonic方法可以做到这一点吗?为什么是JSON?您可以创建目录列表,例如,使用以下脚本: import os def print_dir(path): with os.scandir(path) as it: for entry in it:

我正在尝试仅从服务器中的根文件夹获取目录树。然后将输出馈送到另一个程序,以便它将相同的结构创建到另一个服务器

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


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

为什么是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)
这将从根“/”打印整个目录树:


然后将此列表发送到服务器,在服务器上逐行读取并使用-p参数运行mkdir create parents,如果存在则无错误,根据需要创建父目录。

是否有任何方法仅获取最后一级目录。因此,我不必再创建/lib/lib/crda,而只需创建/lib/crda即可处理这两种情况。
/lib
/lib/crda
/lib/crda/pubkeys
/lib/terminfo
/lib/terminfo/m
/lib/terminfo/c
/lib/terminfo/x
/lib/terminfo/E
...etc.