Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';带有os.path.isdir()的s os.listdir()不会返回所有目录_Python - Fatal编程技术网

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