How to identify whether a file is normal file or directory

Python

Python Problem Overview


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

Python Solutions


Solution 1 - Python

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

Solution 2 - Python

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.

Solution 3 - Python

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' / '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.

Solution 4 - Python

import os

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

Solution 5 - Python

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

Solution 6 - Python

try this:

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

Solution 7 - Python

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>)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncashView Question on Stackoverflow
Solution 1 - PythonPTBNLView Answer on Stackoverflow
Solution 2 - PythonretracileView Answer on Stackoverflow
Solution 3 - PythonjoelostblomView Answer on Stackoverflow
Solution 4 - PythonDominic RodgerView Answer on Stackoverflow
Solution 5 - PythonerenonView Answer on Stackoverflow
Solution 6 - PythonuolotView Answer on Stackoverflow
Solution 7 - PythonSheva KaduView Answer on Stackoverflow