How do I check whether a file exists without exceptions?
If the reason you're checking is so you can do something like
if file_exists: open_it(), it's safer to use a
try around the attempt to open it. Checking and then opening risks the file being deleted or moved or something between when you check and when you try to open it.
If you're not planning to open the file immediately, you can use
if you need to be sure it's a file.
Starting with Python 3.4, the
pathlib module offers an object-oriented approach (backported to
pathlib2 in Python 2.7):
from pathlib import Pathmy_file = Path("/path/to/file")if my_file.is_file(): # file exists
To check a directory, do:
if my_file.is_dir(): # directory exists
To check whether a
Path object exists independently of whether is it a file or directory, use
if my_file.exists(): # path exists
You can also use
resolve(strict=True) in a
try: my_abs_path = my_file.resolve(strict=True)except FileNotFoundError: # doesn't existelse: # exists