我正在尝试创建一个函数,该函数接受根文件的名称,然后遍历目录并返回这样的列表。
[["folder1",[
["subfolder1",[
"file1",
"file2"
]],
["subfolder2",[
"file3",
"file4"
]]
],"file5","file6"]
以下是我对该功能的尝试:
def traverse(rootdir):
names = []
for cdirname, dirnames, filenames in os.walk(rootdir):
# record path to all subdirectories first.
for subdirname in dirnames:
names.append([subdirname,traverse(os.path.join(cdirname, subdirname))])
# record path to all filenames.
for filename in filenames:
names.append(os.path.join(cdirname, filename))
return names
我的问题是,我总是得到与该函数一起记录的相同文件/文件夹的重复,并且我的路径总是相对于“rootdir”显示,而不仅仅是相应文件/文件夹的名称。如何清除重复项?此外,我怎样才能使它不是被记录的完整路径。