Python: Check if a directory exists using os module

CG_corp picture CG_corp · Feb 27, 2018 · Viewed 8.9k times · Source

I'm trying to validate if a directory received as user input exists using the os module

This is how I'm accepting the input:

directory = input("Hi ! \n please type a directory, thanks !")

The idea is that I want to make sure the user will type an existing directory and nothing else

Answer

Draconis picture Draconis · Feb 27, 2018
from pathlib import Path

def is_valid_directory(filename):
    p = Path(filename)
    return p.exists() and p.is_dir()

pathlib is an enormously convenient module for working with file paths of any sort. The p.exists() call is redundant since p.is_dir() returns False for nonexistent paths, but checking both would allow you to e.g. give better error messages.

EDIT: Note that pathlib was added in Python 3.4. If you're still using an old version for whatever reason, you can use the older os.path.isdir(filename) function.