Python 2.7.1:os.path.isdir()的输出不一致

and*_*d18 3 python

我正在构建一个Python ISO生成应用程序,我从os.path.isdir()获得了一些奇怪的输出.我正在使用Python 2.7.1运行Arch Linux.

我有以下文件夹结构:

/ home/andrew/create_iso/Raw_Materials/
/ home/andrew/create_iso/Raw_Materials/test_cd /

[andrew@Cydonia Raw_Materials]$ ls -l total 4 drwxr-xr-x 3 andrew andrew 4096 Feb 23 10:20 test_cd

如您所见,test_cd /是一个普通的Linux文件夹.但是,当我运行os.path.isdir()时,我会得到不同的结果,这取决于它是否是我的for循环的一部分或者我是否对它进行了硬编码.

import os
>>>for folders in os.listdir('/home/andrew/create_iso/Raw_Materials/'):
...  os.path.isdir(folders)
False

>>>os.path.isdir('/home/andrew/create_iso/Raw_Materials/test_cd')
True
Run Code Online (Sandbox Code Playgroud)

我想也许在我从os.listdir()得到的输出中有一些奇怪的东西,但这似乎也可以看出来:

>>>os.listdir('/home/andrew/create_iso/Raw_Materials/')
['test_cd']
Run Code Online (Sandbox Code Playgroud)

知道为什么它对待这些案件有所不同吗?提前致谢.

Sam*_*lan 5

'test_cd'本身不是目录.你需要做一个os.path.join获取目录的绝对路径,然后调用isdir它.