Boot.dev Blog ยป Python ยป How to Check if a File Exists in Python

How to Check if a File Exists in Python

By Lane Wagner on December 8, 2021

Curated backend podcasts, videos and articles. All free.

Want to improve your backend development skills? Subscribe to get a copy of The Boot.dev Beat in your inbox each month. It's a newsletter packed with the best content for new backend devs.

When working with files in Python, you’ll often need to check if a file exists before you do anything else with it, such as reading from or writing to it. Luckily, the Python standard library makes this a piece of cake.

Use pathlib.Path.exists(path) to check for files and directories ๐Ÿ”—

from pathlib import Path

path_exists = Path.exists("home/dir/file.txt")

if path_exists:
    print("found it!")
else:
    print("not found :(")

Notice that path_exists will be True whether this is a file or a directory, it’s only checking if the path exists.

Note: On older versions of Python you may not have access to the pathlib module. If that’s the case, you can use os.path.exists().

from os.path import exists

path_exists = exists("home/dir/file.txt")

if path_exists:
    print("found it!")
else:
    print("not found :(")

Use pathlib.Path(path).is_file() to check for only files ๐Ÿ”—

from pathlib import Path

file_exists = Path.is_file("home/dir/file.txt")

if file_exists:
    print("found it!")
else:
    print("not found :(")

Use pathlib.Path(path).is_dir() to check for only directories ๐Ÿ”—

from pathlib import Path

dir_exists = Path.is_dir("home/dir")

if dir_exists:
    print("found it!")
else:
    print("not found :(")

A symlink is a path that points to, or aliases another path in a filesystem.

from pathlib import Path

symlink_exists = Path.is_dir("home/dir/some_symlink")

if symlink_exists:
    print("found it!")
else:
    print("not found :(")

Find a problem with this article?

Report an issue on GitHub