Как найти, существует ли каталог в Python

на os модуль в Python, есть ли способ найти, существует ли каталог, что-то вроде:

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

10 ответов


вы ищете os.path.isdir или os.path.exists если вам все равно, файл это или каталог.

пример:

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

Так близко! os.path.isdir возвращает True Если вы передаете имя каталога, который существует в настоящее время. Если он не существует или это не каталог, то он возвращает False.


Да, использовать os.path.exists().


в 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

Pathlib также доступен на Python 2.7 через модуль pathlib2 на PyPi.


Да использовать os.путь.isdir(путь)


мы можем проверить с 2 встроенными функциями

os.path.isdir("directory")

это даст boolean true указанный каталог доступен.

os.path.exists("directoryorfile")

это даст boolead true, если указанный каталог или файл доступен.

чтобы проверить, является ли путь каталога;

os.path.isdir("directorypath")

даст boolean значение true, если путь каталога


в:

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

вероятно, бросить в os.path.isdir(...) чтобы быть уверенным.


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 выдаст исключение, если входной путь недопустим.


для обеспечения 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

#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')