How do I check if a directory exists in Python?
⚡TLDR
To assert the existence of a directory in Python, call the os.path.isdir()
function from the built-in os
module. This method specifically checks for a directory's presence.
Example:
Exploring other methods
Checking path existence in different ways
Python provides several methods to feed your coding curiosity:
- For validating any kind of path,
os.path.exists('path')
can check for the existence of both files and directories. - To roll with the new and shiny,
pathlib
module offers a beautiful object-oriented approach to filesystem manipulation. EmployPath('path').is_dir()
for directories, andPath('path').exists()
for any filesystem object.
Example with pathlib
:
Building paths the smart way
When dealing with paths, let go of manual typing, and let Python do the work:
- Use
os.path.join()
to craft paths dynamically. - With
pathlib
, embrace the/
operator to form paths in an elegant way.
Building paths with os
:
Building paths with pathlib
:
Potential gotchas and booby traps
- The case of the invisible folder: A directory you lack read permission for can lead
os.path.isdir()
to returnFalse
. - Impostor alert:
os.path.isdir()
reckons symlinks to directories as, well, directories. Useos.path.islink()
if you're suspicious. - Decoding the ancients: If you speak Python 2.7, install
pathlib2
to enjoy a touch ofpathlib
.
Embracing path operations holistically
pathlib
: The stylish way of doing things
If your Python is 3.4+ fluent, harness the potential of pathlib
. It turns filesystem paths into treats for the eyes:
- General existence check: Apply
exists()
on your path for an all-inclusive existence verification. - Specific file check: Favor
is_file()
to confirm if the path belongs to a file.
Files inside directories: Double-check, double fun
Verify both a directory's existence and a specific file inside it:
Beware of exceptions and errors
Occasionally, filesystem interactions can get rowdy. Be prepared for:
- PermissionError: This spoil-sport shows up when accessing a forbidden path.
- FileNotFoundError: The party pooper when a path doesn't exist.
Onward to mastery
Delve into the hidden depths of os
and pathlib
:
- Path manipulation: Learn all the sneaky tricks of
pathlib.Path
. - Filesystem insights: Learn
os.stat()
to collect metadata about paths. - Automated directory creation: Code that creates directories when absent. Who needs humans when you have Python?
Linked
Was this article helpful?