Программа 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 совмещает оба шага и сразу возвращает чистое имя.