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