Python';带有os.path.isdir()的s os.listdir()不会返回所有目录
我正在遍历一个目录树(向上),我需要找到所有目录。然而,当与组合时,的输出不是我所期望的 例如,这仅显示两个目录(Python';带有os.path.isdir()的s os.listdir()不会返回所有目录,python,Python,我正在遍历一个目录树(向上),我需要找到所有目录。然而,当与组合时,的输出不是我所期望的 例如,这仅显示两个目录(bin和dev): 但是,删除os.path.isdir()调用会列出所有条目,包括文件和目录: >>> for d in os.listdir('/'): ... print d ... sbin home initrd.img [...] run sys >>> 令人惊讶的是,在第一个代码段所列的非目录上运行isdir会返回True: &
bin
和dev
):
但是,删除os.path.isdir()
调用会列出所有条目,包括文件和目录:
>>> for d in os.listdir('/'):
... print d
...
sbin
home
initrd.img
[...]
run
sys
>>>
令人惊讶的是,在第一个代码段所列的非目录上运行isdir
会返回True:
>>> os.path.isdir('/run')
True
>>>
我缺少什么?您的
os.path.isdir
正在检查当前目录下是否存在该目录,而不是os.listdir
正在列出的目录('/')
)
试试这个:
for d in os.listdir('/'):
if os.path.isdir(os.path.join('/', d)):
print d
for d in os.listdir('/'):
if os.path.isdir(os.path.join('/', d)):
print d