我有一个目录列表(purple
、blue
、red
),可以在名为 colors< 的主目录中识别
.
当我从 colors
中运行此脚本时:
path_to_folders = './'
folders = [f for f in os.listdir(path_to_folders) if os.path.isdir(f)]
print(folders)
我得到文件夹列表:
['purple', 'blue', 'red']
当我设置 'path_to_folders = '../colors'
并从 colors
目录外部运行脚本时,其中包含的目录不会被识别为目录,即使它们被读为 f
。
文件夹列表为空:[]
,但打印每个 f
会给出:
purple
blue
red
怎么会这样?
最佳答案
os.path.listdir()
仅返回文件名,不带路径名,而 os.path.isdir()
需要完整路径名,因此您应该使用 os.path.join() 将路径名添加到文件名前面:
folders = [f for f in os.listdir(path_to_folders) if os.path.isdir(os.path.join(path_to_folders, f))]
关于python - 当路径不是当前目录时,os.path.isdir() 无法识别目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701280/