如何在Python中创建目录中的文件列表

Reu*_*iko 1 python

我有一堆文件要排序.

我试图获取目录中仅文件(或仅文件夹)的名称列表.

path = 'C:\\test\\'
items = os.listdir(path) #this gives me a list of both files and folders in dir

for name in items:
    if os.path.isfile(path + '\\' + name) == True:
        items.remove(name)
Run Code Online (Sandbox Code Playgroud)

我预计这items将包含文件夹的名称.但它也有一半的文件名称.

但是,如果我使用print(name)而不是items.remove(name)它打印正确.

小智 5

我怀疑这是因为你正在重复"项目"列表,因为你正在迭代它.这样做绝对不是一个好主意.这可能会导致某些元素被跳过.这就是为什么不删除所有文件的原因.而不是for循环,做这样的事情

items = [item for item in items if isfile(join(path, item))]
Run Code Online (Sandbox Code Playgroud)

join函数位于os.path中.你应该使用它而不是自己添加反斜杠.