Как найти, существует ли каталог в 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
.
в 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.
мы можем проверить с 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')