Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 是否有操作系统方法生成特定目录的dictional=={quot;folder";:[“x27”子文件夹“,“file1”和“file2”…]}?_Python_List_Dictionary - Fatal编程技术网

Python 是否有操作系统方法生成特定目录的dictional=={quot;folder";:[“x27”子文件夹“,“file1”和“file2”…]}?

Python 是否有操作系统方法生成特定目录的dictional=={quot;folder";:[“x27”子文件夹“,“file1”和“file2”…]}?,python,list,dictionary,Python,List,Dictionary,此代码从目录生成两个列表: 1) 文件 2) 文件夹 我需要一个解决办法,可以让我在字典格式的目录树 class Directory_info: directory = None def __init__(self, path): ''' Walks Through the predetermined directory and uses built-in os methods to check if item is file or direct

此代码从目录生成两个列表:
1) 文件
2) 文件夹

我需要一个解决办法,可以让我在字典格式的目录树

class Directory_info:
    directory = None

    def __init__(self, path):
        '''
        Walks Through the predetermined directory and uses built-in os methods to check if item is file or directory
        '''
        directory = path
        item_list = os.listdir(directory) #generates a list of items present in the predetermined directory
        files = []
        dirs = []
        dict={}
        for x in item_list:
            path = os.path.join(directory, x) #yields the path of the current item
            if os.path.isfile(path):          #checks if the current item is a file using it's path
                files.append(x)
            else:
                dirs.append(x)
        print "Files:\n"+str(files)
        print "Directories:\n"+str(dirs)
结果:

import os

def get_directory_structure(rootdir):
    """
    Creates a nested dictionary that represents the folder structure of rootdir
    """
    dir = {}
    rootdir = rootdir.rstrip(os.sep)
    start = rootdir.rfind(os.sep) + 1
    for path, dirs, files in os.walk(rootdir):
        folders = path[start:].split(os.sep)
        subdir = dict.fromkeys(files)
        parent = reduce(dict.get, folders[:-1], dir)
        parent[folders[-1]] = subdir
    return dir

{
    "root": {
        "folder2": {
            "item2": None, 
            "item1": None
        }, 
        "folder1": {
            "subfolder1": {
                "item2": None, 
                "item1": None
            }, 
            "subfolder2": {
                "item3": None
            }
        }
    }
}