python - 当路径不是当前目录时,os.path.isdir() 无法识别目录

标签 python directory directory-structure

我有一个目录列表(purplebluered),可以在名为 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/

相关文章:

python - 通过其中一个值在打乱的子列表列表中查找值

arrays - 用于检查文件列表中的所有文件是否存在于给定文件夹中的 Powershell 脚本

c++ - 如果目录不存在则创建目录

c++ - Boost 目录迭代器 "no such file or directory"

linux - 在 Linux 上展平目录结构时将数字附加到文件名

python - 将文件夹的文件夹中的文件重命名为其父文件夹?

c++ - 当有许多项目相互依赖时,Visual C++ 中的文件夹结构

python - 如何从 Python 中的 GLib.GString 获取原始字节?

python - 属性错误 : module 'yfinance' has no attribute 'download'

javascript - django-allauth 未捕获的 ReferenceError