Как определить, является ли файл обычным файлом или каталогом, используя python

Как вы проверяете, является ли файл нормальным файлом или каталогом с помощью python?

Ответ 2

Как говорили другие ответы, os.path.isdir() и os.path.isfile() - это то, что вы хотите. Однако вам нужно иметь в виду, что это не единственные два случая. Используйте os.path.islink() для символических ссылок, например. Кроме того, все они возвращают False, если файл не существует, поэтому вы, вероятно, захотите также проверить с помощью os.path.exists().

Ответ 3

import os

if os.path.isdir(d):
    print "dir"
else:
    print "file"

Ответ 4

попробуйте следующее:

import os.path
if os.path.isdir("path/to/your/file"):
    print "it a directory"
else:
    print "it a file"

Ответ 5

os.path.isdir('string')
os.path.isfile('string')

Ответ 6

Если вы просто переходите через набор каталогов, вам может быть лучше попробовать 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))

Ответ 7

Python 3.4 представил модуль pathlib в стандартную библиотеку, которая обеспечивает объектно-ориентированный подход для обработки путей файловой системы. Методы relavant были бы .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.