Python:os.path.exists vs os.path.isdir

时间:2013-02-25 22:06:56

标签: python

我正在检查目录是否存在,但我注意到我正在使用path.exists而不是path.isdir。两者都工作得很好,但我很好奇使用isdir而不是存在的优点。

5 个答案:

答案 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。