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

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

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

Понимание текущей директории

В этой статье мы будем проверять, хранится ли файл my_file.txt в директории (папке, каталоге) my_data. Однако перед этим необходимо понять, как выглядит структура вашей текущей директории, чтобы вы могли эффективно перемещаться по ней. Вот несколько стандартных функций, которые помогут вам ориентироваться в каталогах.

Получение текущего каталога с помощью os.getcwd()

Чтобы получить текущий рабочий каталог в Python, вы можете использовать функцию getcwd() из пакета os. Эта функция возвращает строку, представляющую путь к текущему рабочему каталогу. Например:

import os

# Получить текущую рабочую директорию
current_directory = os.getcwd()
print("The current working directory is:", current_directory)

Вывод всех файлов и папок в вашей директории с помощью os.listdir()

Чтобы вывести список всех папок и файлов в текущем каталоге с помощью Python, вы можете использовать функцию listdir() из пакета os. Эта функция возвращает список, содержащий имена записей в каталоге, указанном в path. Например, в текущем каталоге есть папка my_data, а также набор данных airbnb_data.csv. Здесь мы используем функцию listdir(), чтобы перечислить их:

import os

# Получить текущую рабочую директорию
current_directory = os.getcwd()

# Вывести список всех файлов и папок в текущей директории
entries = os.listdir(current_directory)
print(entries) # Returns ['my_data, 'airbnb_data.csv'] 

А теперь, когда мы научились перемещаться по каталогам, давайте проверим, существуют ли определенные файлы!

Метод 1: Использование функции os.path.exists()

Функция os.path.exists() модуля os — это простой способ проверить существование файла или каталога. Она понятна и проста в использовании.

Здесь мы используем оператор if, который возвращает «This file exists.», если файл my_file.txt присутствует в каталоге my_data, и «This file does not exist.» в противном случае.

import os

# Указать путь к файлу
file_path = 'my_data/my_file.txt'

# Проверить, существует ли этот файл
if os.path.exists(file_path):
   print("The file exists.")
else:
   print("The file does not exist.")

Метод 2: Использование функции pathlib.Path.exists()

Использование метода Path.exists() пакета pathlib — более современный и объектно-ориентированный подход. Этот метод позволяет работать с путями файлов более интуитивно. Он легко интегрируется с возможностями Python по работе с файлами.

from pathlib import Path

# Создать объект Path
file_path = Path('my_data/my_file.txt')

# Проверить, существует ли файл
if file_path.exists():
   print("The file exists.")
else:
   print("The file does not exist.")

Метод 3: Использование блока try-except при открытии файла

Также мы можем использовать блок try-except в сочетании с функцией open() для открытия файла с одновременной проверкой его существования. Этот метод эффективно сочетает проверку существования с доступом к файлу.

try:
    # Попытаться открыть файл
    with open('my_data/my_file.txt', 'r') as file:
        print("The file exists.")
except FileNotFoundError:
    print("The file does not exist.")

От редакции Pythonist: подробнее об открытии файлов читайте в статье «Чтение и запись файлов в Python».

Заключение

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

Перевод статьи «How to Check if a File Exists in Python».