Как проверить, существует ли файл на Python

  1. try/except для проверки существования файла (>=Python 2.x)
  2. os.path.isfile() для проверки существования файла (>=Python 2.x)
  3. pathlib.Path.is_file() чтобы проверить существует ли файл (>=Python 3.4)

В этом уроке будут представлены три различных решения для проверки существования файла на Python.

  1. Блок try/except для проверки существования файла (>=Python 2.x).
  2. Функция os.path.isfile для проверки существования файла (>=Python 2.x).
  3. pathlib.Path.is_file()проверка существования файла (>=Python 3.4)

try/except для проверки существования файла (>=Python 2.x)

Мы можем попробовать открыть файл и проверить, существует ли файл или нет, в зависимости от того, будет ли брошена IOError (на Python 2.x) или FileNotFoundError (на Python 3.x) или нет.

def checkFileExistance(filePath):
    try:
        with open(filePath, 'r') as f:
            return True
    except FileNotFoundError as e:
        return False
    except IOError as e:
        return False

В приведённых выше примерах мы делаем Python 23 совместимым, перечисляя FileNotFoundError и IOError в части исключения catching.

os.path.isfile() для проверки существования файла (>=Python 2.x)

import os
fileName = r"C:\Test\test.txt"
os.path.isfile(fileName)

Проверяет, существует ли fileName.

Предупреждение

Некоторые разработчики предпочитают использовать os.path.exists() для проверки существования файла. Но он не может определить, является ли объект файлом или каталогом.

import os
fileName = r"C:\Test\test.txt"
os.path.exists(fileName)
#Out: True
fileName = r"C:\Test"
os.path.exists(fileName)
#Out: True

Поэтому, используйте os.path.isfile только в том случае, если хотите проверить, существует ли файл.

pathlib.Path.is_file() чтобы проверить существует ли файл (>=Python 3.4)

Начиная с Python 3.4, в модуле pathlib вводится объектно-ориентированный метод для проверки существования файла.

from pathlib import Path

fileName = r"C:\Test\test.txt"
fileObj = Path(fileName)
fileObj.is_file()

Аналогичным образом, он также имеет методы is_dir() и exists() для проверки, существует ли каталог или файл/каталог.

Сопутствующая статья - Python file-path

  • Как получить все файлы каталога
  • Как удалить файл и каталог на Python
  • Как найти файлы с определенным расширением только на Python
  • comments powered by Disqus