我想創建一個函數,它接受一個根文件的名稱,然後遍歷導演並返回一個像這樣的列表。Python文件橫向
[["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」而不是相應文件/文件夾的名稱顯示。我如何清除重複項?另外我怎麼能做到這一點,以便它不是記錄的完整路徑。
在此先感謝。
如果'filename',而不是'os.path.join(cdirname,文件名)'那麼你沒有得到完整的路徑。 – SethMMorton
謝謝,這對我來說應該是顯而易見的!不知道爲什麼我沒有看到! –