Как с помощью Python проверить, является ли файл обычным файлом или каталогом?
os.path.isdir()
и os.path.isfile()
должен дать вам то, что вы хотите. См.
Http://docs.python.org/library/os.path.html
Как говорили другие ответы, os.path.isdir()
и os.path.isfile()
вы хотите. Однако нужно иметь в виду, что это не единственные два случая. Используйте, например, os.path.islink()
для символических ссылок. Кроме того, все они возвращаются, False
если файл не существует, поэтому вы, вероятно, также захотите проверить os.path.exists()
.
Python 3.4 вводится в pathlib
модуле в стандартную библиотеку, которая обеспечивает ориентированный подход объекта для обработки файловой системы путей. Соответствующие методы будут .is_file()
и .is_dir()
:
In [1]: from pathlib import Path
In [2]: p = Path('/usr')
In [3]: p.is_file()
Out[3]: False
In [4]: p.is_dir()
Out[4]: True
In [5]: q = p / 'bin' / 'vim'
In [6]: q.is_file()
Out[6]: True
In [7]: q.is_dir()
Out[7]: False
Pathlib также доступен в Python 2.7 через модуль pathlib2 в PyPi.
import os
if os.path.isdir(d):
print "dir"
else:
print "file"
os.path.isdir('string')
os.path.isfile('string')
попробуй это:
import os.path
if os.path.isdir("path/to/your/file"):
print "it's a directory"
else:
print "it's a file"
Если вы просто просматриваете набор каталогов, вам может быть лучше просто попытаться os.chdir
выдать ошибку / предупреждение, если это не удается:
import os,sys
for DirName in sys.argv[1:]:
SaveDir = os.getcwd()
try:
os.chdir(DirName)
print "Changed to "+DirName
# Do some stuff here in the directory
os.chdir(SaveDir)
except:
sys.stderr.write("%s: WARNING: Cannot change to %s\n" % (sys.argv[0],DirName))