home ~ projects ~ socials

Check If A File Exists In Python

This is the way I check to see if a file exists at a given path in python:

from pathlib import Path

check_file = "/Users/alan/Desktop/test.txt"
if Path(check_file).is_file():
    print("File exists")
else:
    print("File does not exist")
Output:
File does not exist

Alternatives

NOTE: These are still works in progress

Other related ways to do stuff

from pathlib import Path

  check_file = Path("/Users/alan/Desktop/test.org")

  if check_file.is_file():
      print("File exists")
  else:
      print("File does not exist")
Output:
File exists

#+OLDNOTES

TL:DR;

from pathlib import Path

my_file = Path("/path/to/file") if my_file.is_file(): # file exists

# oneliner:

if Path("/path/to/file").is_file() print('file exists.)

For dir:

.is_dir()

Exists in general:

.exists()

Via: https://stackoverflow.com/questions/82831/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 [os.path.isfile][1]

> Return True if path is an existing regular file. This follows symbolic links, so both [islink()][2] and [isfile()][1] can be true for the same path.

import os.path os.path.isfile(fname)

if you need to be sure it's a file.

Starting with Python 3.4, the [pathlib module][3] offers an object-oriented approach (backported to pathlib2 in Python 2.7):

from pathlib import Path

my_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 exists():

if my_file.exists(): # path exists

You can also use resolve(strict=True) in a try block:

try: my_abs_path = my_file.resolve(strict=True) except FileNotFoundError: # doesn't exist else: # exists

[1]:https://docs.python.org/2/library/os.path.html#os.path.isfile [2]:https://docs.python.org/2/library/os.path.html#os.path.islink [3]:https://docs.python.org/3/library/pathlib.html#pathlib.Path.is_file

-- end of line --