Как проверить, существует ли файл в Python
В этом уроке вы узнаете, как проверить, существует ли файл в Python.
При обработке файлов вам часто нужно проверить, существует ли файл, прежде чем делать с ним что-то еще, например читать из файла или записывать в него.
Для этого вы можете использовать функцию Exist() из модуля os.path или метод is_file() из класса Path в модуле pathlib.
- Функция os.path.exists()
from os.path import exists file_exists = exists(path_to_file)
- Метод Path.is_file()
from pathlib import Path path = Path(path_to_file) path.is_file()
Использование функции os.path.exists() для проверки существования файла
Чтобы проверить, существует ли файл, вы передаете путь к файлу функции exists() из стандартной библиотеки os.path.
Сначала импортируйте стандартную библиотеку os.path:
import os.path
Затем вызовите функцию exists():
os.path.exists(path_to_file)
Если файл существует, функция exists() возвращает значение True. В противном случае она возвращает False.
Если файл находится в той же папке, что и программа, path_to_file — это просто имя файла. Однако вам нужно передать полный путь к файлу.
Например:
/path/to/filename
Даже если вы запускаете программу в Windows, для разделения пути следует использовать косую черту (/). Она будет работать в Windows, macOS и Linux.
В следующем примере функция exists() используется для проверки того, существует ли файл readme.txt в той же папке, что и программа:
import os.path file_exists = os.path.exists('readme.txt') print(file_exists)
Если файл readme.txt существует, вы увидите следующий вывод:
True
В противном случае вы увидите на экране:
False
Чтобы сделать вызов функции exists() короче и очевиднее, вы можете импортировать эту функцию и переименовать ее в функцию file_exists() следующим образом:
from os.path import exists as file_exists file_exists('readme.txt')
Использование модуля pathlib для проверки существования файла
Python представил модуль pathlib начиная с версии 3.4.
Модуль pathlib позволяет манипулировать файлами и папками, используя объектно-ориентированный подход. Если вы не знакомы с объектно-ориентированным программированием, ознакомьтесь с разделом ООП Python.
Сначала импортируйте класс Path из модуля pathlib:
from pathlib import Path
Затем создайте экземпляр нового экземпляра класса Path и инициализируйте его путем к файлу, существование которого вы хотите проверить:
path = Path(path_to_file)
Наконец, проверьте, существует ли файл, используя метод is_file():
path.is_file()
Если файл не существует, метод is_file() возвращает значение False. В противном случае он возвращает True.
В следующем примере показано, как использовать класс Path из модуля pathlib, чтобы проверить, существует ли файл readme.txt в той же папке программы:
from pathlib import Path path_to_file = 'readme.txt' path = Path(path_to_file) if path.is_file(): print(f'The file {path_to_file} exists') else: print(f'The file {path_to_file} does not exist')
Если файл readme.txt существует, вы увидите следующий вывод:
The file readme.txt exists