Как найти, если каталог существует в Python - PullRequest
972 голосов
/ 20 января 2012

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

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

Ответы [ 10 ]

1516 голосов
/ 20 января 2012

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

Пример:

import os
print(os.path.isdir("/home/el"))
print(os.path.exists("/home/el/myfile.txt"))
68 голосов
/ 20 января 2012

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

43 голосов
/ 28 мая 2017

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.

33 голосов
/ 20 января 2012

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

17 голосов
/ 26 марта 2018

Мы можем проверить с помощью 2 встроенных функций

os.path.isdir("directory")

Это даст логическое значение true, указанный каталог доступен.

os.path.exists("directoryorfile")

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

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

os.path.isdir("directorypath")

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

16 голосов
/ 20 января 2012

Да, используйте os.path.isdir (путь)

10 голосов
/ 20 января 2012

Как в:

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

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

8 голосов
/ 05 апреля 2016

Просто для предоставления версии 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
7 голосов
/ 17 мая 2013

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

5 голосов
/ 12 ноября 2017
#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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...