我正在检查是否存在目录,但是我注意到我正在使用os.path.exists
而不是os.path.isdir
。两者都很好,但是我很好奇使用isdir
代替的优势exists
。
Answers:
os.path.exists
True
如果存在具有该名称的常规文件,也将返回。
os.path.isdir
仅True
当该路径存在且为目录或指向目录的符号链接时才返回。
os.path.isdir('.ipynb_checkpoints')
回归真实
大多数时候,它是相同的。
但是,路径可以物理存在,而path.exists()
返回False。如果os.stat()对于此文件返回False,就是这种情况。
如果路径物理存在,path.isdir()
则将始终返回True。这不取决于平台。
isdir()
无法知道该目录是否存在。
os.path.exists(path)如果path引用现有路径,则返回True。现有路径可以是常规文件(http://en.wikipedia.org/wiki/Unix_file_types#Regular_file),也可以是特殊文件(例如目录)。因此,从本质上讲,如果提供的路径以任何形式存在于文件系统中,则此函数将返回true(尽管有一些异常情况,例如断开的符号链接)。
os.path.isdir(path)仅在路径指向目录时才返回true
os.path.isdir
在符号链接上为我返回true。