我正在尝试制作自己的os walk功能。 但最初的部分是无法将文件和文件夹分类到两个目录中。 相反,所有文件和文件夹都列在两个列表中
import os
path = '/root/Downloads'
files=folders=[]
dirs = os.listdir(path)
for dir in dirs:
if os.path.isfile(dir):
files.append(dir)
else:
folders.append(dir)
答案 0 :(得分:1)
最初,我认为这只是因为您声明files
和folders
都指向空列表的同一个实例。如下面的评论所示,这不是整个故事。我不知道为什么isfile
/ isdir
无法正常工作,但将listdir
更改为scandir
会有效。所以,你的代码变成了:
import os
path = '/root/Downloads'
files=[]
folders=[]
dirs = os.scandir(path)
for dir in dirs:
if os.path.isdir(dir):
folders.append(dir)
else:
files.append(dir)