我正在检查目录是否存在,但我注意到我使用os.path.exists
的是os.path.isdir
. 两者都工作得很好,但我很好奇使用isdir
而不是exists
.
5 回答
os.path.exists
True
如果有一个具有该名称的常规文件,也会返回。
os.path.isdir
True
仅当该路径存在并且是目录或目录的符号链接时才会返回。
就像听起来一样:如果路径存在,但是是文件而不是目录,isdir
将返回False
. 同时,在这两种情况下exists
都会返回True
。
os.path.isdir()检查路径是否存在并且是一个目录,并针对这种情况返回 TRUE。
类似地,os.path.isfile()检查路径是否存在并且是文件,并针对这种情况返回 TRUE。
并且,os.path.exists() 检查路径是否存在并且不关心路径是否指向文件或目录并在任何一种情况下都返回 TRUE。
大多数时候,它是一样的。
但是,路径可以物理存在而path.exists()
返回 False。如果 os.stat() 对此文件返回 False,就会出现这种情况。
如果路径物理存在,path.isdir()
则将始终返回 True。这不依赖于平台。
os.path.exists(path) 如果 path 引用现有路径,则返回 True。现有路径可以是常规文件(http://en.wikipedia.org/wiki/Unix_file_types#Regular_file),也可以是特殊文件(例如目录)。因此,本质上,如果提供的路径以任何形式存在于文件系统中,则此函数返回 true(尽管有一些例外,例如损坏的符号链接)。
os.path.isdir(path) 反过来只会在路径指向目录时返回 true