How to identify whether a file is normal file or directory
PythonPython 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>)