尝试对文件和文件夹进行分类。但两个列表都有相同的输出

时间:2018-02-11 07:00:57

标签: python

我正在尝试制作自己的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)

1 个答案:

答案 0 :(得分:1)

最初,我认为这只是因为您声明filesfolders都指向空列表的同一个实例。如下面的评论所示,这不是整个故事。我不知道为什么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)