How to identify whether a file is normal file or directory

Each Answer to this Q is separated by one/two green lines.

How do you check whether a file is a normal file or a directory using python?

os.path.isdir() and os.path.isfile() should give you what you want. See:
http://docs.python.org/library/os.path.html

As other answers have said, os.path.isdir() and os.path.isfile() are what you want. However, you need to keep in mind that these are not the only two cases. Use os.path.islink() for symlinks for instance. Furthermore, these all return False if the file does not exist, so you’ll probably want to check with os.path.exists() as well.

Python 3.4 introduced the pathlib module into the standard library, which provides an object oriented approach to handle filesystem paths. The relavant methods would be .is_file() and .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"https://stackoverflow.com/"vim'

In [6]: q.is_file()
Out[6]: True

In [7]: q.is_dir()
Out[7]: False

Pathlib is also available on Python 2.7 via the pathlib2 module on PyPi.

import os

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

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

try this:

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

To check if a file/directory exists:

os.path.exists(<path>)

To check if a path is a directory:

os.path.isdir(<path>)

To check if a path is a file:

os.path.isfile(<path>)


The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.