8 способов проверить, существует ли файл с помощью Python

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

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

1. Заявления "попробуй и исключи"

Оператор try and except проверяет команду и выдает результат. В приведенном ниже коде оператор try попытается открыть файл ( testfile.txt ). Если процессор Python может найти файл, он откроет файл и распечатает результат. Файл открыт и доступен для использования .

 try:
f = open('testfile.txt')
print("File is available for use")
f.close()
except IOError:
print('File is not accessible')

Если он обнаружит ошибку, он распечатает результат. Файл недоступен . После того, как полный код скомпилирован и выполнен, он закроет открытый файл, если он был открыт.

Зависимость Python от внешних файлов является важным аспектом, и вам нужно обратить внимание на базовые / исходные файлы, прежде чем выполнять какие-либо коды.

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

2. Os.path.isfile (путь)

Python имеет встроенную модульную ОС, которая может быть вызвана для взаимодействия с базовыми файлами, папками и каталогами. Метод Python os.path.isfile () может использоваться для проверки каталога и наличия определенного файла.

Первый шаг – импортировать встроенную функцию с помощью библиотеки import os.path . Следующая команда проверяет, существует ли файл в определенном месте.

 import os.path
os.path.isfile(r"C:UsersWini BhallaDesktopPython test file.txt")

Выходные данные возвращают True , поскольку файл существует в определенном месте. Если файл не существует, Python вернет False .

3. Os.path.exists (путь)

По аналогичным причинам оператор import os library может использоваться для проверки того, существует ли каталог в вашей системе.

Синтаксис довольно прост:

 Import os.path
os.path.exists(r"C:UsersWini BhallaDesktoptest")

Как и на предыдущем шаге, если каталог / папка найдена по указанному системному пути, Python возвращает True , а затем False , если каталог / папка не найдена.

Связанный: Изучение Python? Вот как скопировать файл

4. Os.Path.Isdir (путь)

Так же, как os.path.isfile и os.path.exists () , os.path.isdir () является подфункцией библиотеки os. Единственная разница здесь в том, что эта команда работает только для каталогов. Как и ожидалось, использование этого синтаксиса возвращает логическое значение, основанное на существовании каталогов.

Например:

 import os
os.path.isdir(r"C:UsersWini BhallaDesktopOS")

Результатом будет True , поскольку папка / каталог существует по указанному пути.

 import os
os.path.isdir(r"C:UsersWini BhallaDesktoptestdirectory")

Результатом будет False , поскольку папка / каталог не существует по указанному пути.

5. Pathlib.path.exists ()

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

Чтобы использовать Pathlib:

 import pathlib
file = pathlib.Path(r"C:UsersWini BhallaDesktopPython test file.txt")
if file.exists ():
print ("File exists")
else:
print ("File does not exist")

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

6. Os.listdir (путь)

Метод listdir в Python возвращает список всех файлов в определенном каталоге, как указано пользователем. Однако этот метод не вернет файлы, существующие во вложенных папках.

Метод listdir принимает только один параметр – путь к файлу. В идеале, путь к файлу должен состоять из имен файлов и папок, которые вы хотите получить.

Базовый синтаксис включает:

 os.listdir(path)

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

 import os
path = r'C:UsersWini BhallaDesktop'
files = os.listdir(path)
print (files)

Этот код распечатает список файлов, доступных в текущем каталоге.

 import os
path = r'C:UsersWini BhallaDesktop' files = os.listdir(path)
for f in files:
if f == "test.txt":
print("File exists")
else:
print("File does not exist")

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

Связанный: Использование циклов со списками в Python

7. Модуль Glob

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

Есть две ссылки на путь:

Если файл найден, код вернет True , в противном случае он вернет False .

Пример использования Glob:

 import glob
if glob.glob(r"C:UsersWini BhallaDesktoptest.txt"):
print ("File exist")
else:
print("File does not exist")

На выходе этого кода будет напечатан результат, если файл найден.

8. Подпроцесс

Команда test в модуле подпроцесса – это эффективный способ проверки существования файлов и каталогов. Команды тестирования работают только на компьютерах с ОС Unix, но не на компьютерах с ОС Windows.

Вы можете использовать следующие команды в соответствии с вашими потребностями:

  • test -e: проверить наличие пути
  • test -f: проверить наличие файла
  • test-d: проверить наличие папки

Проверка пути с помощью подпроцесса:

 from subprocess import run
run(['test', '-e', 'testfile.txt']).returncode == 0
run(['test', '-e', 'im-not-here.txt']).returncode == 0

Этот код вызвал тестовую функцию, за которой следует '-e', чтобы проверить существование пути. Функция показывает False для недопустимого пути.

Проверка файла с помощью подпроцесса:

 run(['test', '-f', 'testfile.txt']).returncode == 0
run(['test', '-f', 'testdirectory']).returncode == 0

Функция '-f' проверяет существование файла и возвращает значение False для каталога.

Проверка каталога с помощью подпроцесса:

 run(['test', '-d', 'testfile.txt']).returncode == 0
run(['test', '-d', 'testdirectory']).returncode == 0

Функция '-d' проверяет наличие каталога и возвращает False для любого запроса файла в тестовой команде.

Какую команду вы будете использовать для поиска файлов?

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

Однако, если вы новичок, всегда есть способы изучить Python. Поскольку Python – это обширный язык, лучше потратить некоторое время на понимание различных нюансов и набора его команд.