如何查找 Python 中是否存在目录

在 Python 的os模块中,有没有一种方法可以查找目录是否存在,例如:

>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode
True/False

答案

如果您不在意它是文件还是目录,则在寻找os.path.isdiros.path.exists

例:

import os
print(os.path.isdir("/home/el"))
print(os.path.exists("/home/el/myfile.txt"))

很近!如果传入当前存在的目录名,则os.path.isdir返回True 。如果它不存在或不是目录,则返回False

Python 3.4 将pathlib模块引入了标准库,该库提供了一种面向对象的方法来处理文件系统路径:

In [1]: from pathlib import Path

In [2]: p = Path('/usr')

In [3]: p.exists()
Out[3]: True

In [4]: p.is_dir()
Out[4]: True

In [5]: q = p / 'bin' / 'vim'

In [6]: q.exists()
Out[6]: True

In [7]: q.is_dir()
Out[7]: False

也可以通过PyPi 上的 pathlib2 模块在 Python 2.7 上使用 Pathlib。

是的,请使用os.path.exists()

我们可以检查 2 个内置函数

os.path.isdir("directory")

它将布尔值为 true,指定的目录可用。

os.path.exists("directoryorfile")

如果指定的目录或文件可用,它将使 boolead 为 true。

检查路径是否为目录;

os.path.isdir("directorypath")

如果路径为目录,则将为布尔值 true

是的,使用os.path.isdir(path)

如:

In [3]: os.path.exists('/d/temp')
Out[3]: True

可能要扔os.path.isdir(...)

仅提供os.stat版本(python 2):

import os, stat, errno
def CheckIsDir(directory):
  try:
    return stat.S_ISDIR(os.stat(directory).st_mode)
  except OSError, e:
    if e.errno == errno.ENOENT:
      return False
    raise

os 为您提供了许多以下功能:

import os
os.path.isdir(dir_in) #True/False: check if this is a directory
os.listdir(dir_in)    #gets you a list of all files and directories under dir_in

如果输入路径无效,则 listdir 将引发异常。

#You can also check it get help for you

if not os.path.isdir('mydir'):
    print('new directry has been created')
    os.system('mkdir mydir')