我有一堆文件要排序.
我试图获取目录中仅文件(或仅文件夹)的名称列表.
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中.你应该使用它而不是自己添加反斜杠.
| 归档时间: |
|
| 查看次数: |
1956 次 |
| 最近记录: |