Программа Python для получения имени файла из пути

В этом примере получим имя файла (без папок) из полного пути двумя способами.

Что нужно знать

Пример 1. Через модуль os

import os

# имя файла с расширением
file_name = os.path.basename('/root/file.ext')

# имя файла без расширения
print(os.path.splitext(file_name)[0])

Вывод

file

basename() возвращает имя последнего элемента пути (файл или папку). splitext() разбивает имя на имя без расширения и расширение.

import os

print(os.path.splitext(file_name))

Вывод

('file', '.ext')

Пример 2. Через модуль pathlib

from pathlib import Path

print(Path('/root/file.ext').stem)

Вывод

file

Атрибут stem объекта Path возвращает имя файла без расширения.

Примечание

Модуль pathlib доступен начиная с Python 3.4.

Как это работает

os.path.basename отрезает все каталоги до последнего разделителя, оставляя имя файла с расширением. os.path.splitext ещё раз делит результат — на «корень» и расширение. Path.stem совмещает оба шага и сразу возвращает чистое имя.