Рубрики
Без рубрики

Проверьте, существует ли файл в Python

Как проверить, существует ли файл в Python? Мы научились выполнять различные операции с файлом в наших предыдущих руководствах по обработке файлов, включая чтение,

Автор оригинала: Pankaj Kumar.

Вступление

Как проверить, существует ли файл в Python? Мы научились выполнять различные операции с файлом в наших предыдущих учебниках по обработке файлов , включая чтение , запись , удаление , а также копирование файла на Python. Но прежде чем мы выполним какую-либо из этих операций с файлом, необходимо проверить, существует ли файл уже или нет.

Если файл не существует, то мы не можем ни читать из него, ни копировать, ни удалять его. Даже во время записи пользователь может захотеть проверить наличие файла, чтобы избежать перезаписи информации.

Давайте перейдем к теме и рассмотрим некоторые методы проверки существования файла.

Методы проверки наличия файла в Python

Мы можем проверить, существует ли файл в Python, используя различные методы, упомянутые ниже.

1. Использование модуля pathlib

Модуль pathlib в Python поставляется с некоторыми интересными методами, такими как is_file () , is_dir () , exists () и т. Д. Давайте рассмотрим несколько примеров один за другим:

import pathlib
path = pathlib.Path('file.txt')
print("pathlib-exists()---->",path.exists())
print("pathlib-is_file()---->",path.is_file())
print("pathlib-is_dir()---->",path.is_dir())

Выход:

Вывод библиотеки Path lib
  • патлиб.Path() возвращает объект path, который приводит к указанному имени файла, хранящемуся в переменной path ,
  • метод path lib.exists() проверяет, ведет ли указанный путь к допустимому файлу или нет. В нашем случае, как file.txt путь существует, результат верен.
  • с другой стороны, метод is_file() проверяет, является ли объект path файлом. Что в нашем случае верно, как мы видим на выходе.
  • метод is_dir() проверяет, является ли указанный путь каким-либо каталогом. Здесь, так как наши file.txt путь-это не каталог, который мы получаем на выходе.

2. Использование модуля ОС

Одним из широко используемых методов проверки существования файлов является модуль os.path из стандартной библиотеки python. Он поставляется с некоторыми базовыми методами, такими как is file() и exists () , аналогичными модулю pathlib . Давайте подробнее рассмотрим один пример:

import os.path
print("os.path-exists()---->",os.path.exists('file.txt'))
print("os.path-isfile()---->",os.path.isfile('file.txt'))

Выход:

Вывод пути Ос
  • Аналогично path lib modules exists() и is_file() методы os.exists() , а также os.isfile() также выполняют аналогичную проверку соответственно.
  • Единственное различие заключается в том, что модуль pathlib привносит какой-то отличный объектно-ориентированный подход и рассматривает путь как объект пути, а не строку(в случае модуля ос).

3.Использование обработки исключений

Давайте теперь рассмотрим несколько различных методов, чтобы проверить, существует ли файл в Python с помощью исключений.

На этот раз мы собираемся использовать встроенную функцию open () , чтобы открыть файл и проверить наличие исключения , которое, если оно возникнет, подтвердит, что файл не существует или недоступен. Например:

My_file=open('file.txt')
try:
    My_file.close()
    print("File found!")
except FileNotFoundError:
    print("Files couldn't be opened!")

Выход:

File found!
  • В приведенном выше коде с file.txt существовал в нашей системе, FileNotFoundError не вызывается, и файл успешно закрывается.

Опять же, когда no-file.txt не существует на вашем компьютере:

try:
    My_file=open('no-file.txt')
    My_file.close()
    print("File found!")
except FileNotFoundError:
    print("Files couldn't be opened!")

Выход:

Файл Не найден Исключение
  • Таким образом, мы можем ясно видеть, что, когда файл не найден, возникает исключение FileNotFoundError .

Кроме того, та же задача может быть достигнута с помощью IOError , который проверяет, является ли открываемый файл читаемым и доступным для программы. Например, рассмотрим следующий фрагмент кода:

try:
    My_file = open('no-file.txt')
    My_file.close()
    print('File is found!')
except IOError:
    print('IOError encountered!')

Выход:

IOError

Рекомендации