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
}
}
}
}