Вывод имен файлов без пути

Есть код, который выводит все файлы с расширением .php из директорий и поддиректорий:

import os

os.chdir("/opt/lampp/htdocs/phpBB3")
for root, dirs, files in os.walk(".", topdown = True):
   for name in files:
    if name.endswith('.php'):
            print(os.path.join(root, name))
   for name in dirs:
    if name.endswith('.php'):
            print(os.path.join(root, name))

Как сделать, чтобы названия файлов выводились без пути (без названия директорий, где они находятся), а просто имя и расширение?


Ответы (2 шт):

Автор решения: gil9red

Я бы предложил попробовать модуль pathlib, а для поиска glob:

from pathlib import Path

path = Path("/opt/lampp/htdocs/phpBB3")

for file_name in path.rglob('*.php'):
    print(file_name.name)

PS.

  • Path.rglob -- для рекурсивного поиска
  • Path.glob -- для поиска в текущей папке
→ Ссылка
Автор решения: insolor

os.path.join(root, name) в вашем коде прикрепляет путь к имени файла. Если нужно вывести просто имя файла, то и выводите просто name:

import os

os.chdir("/opt/lampp/htdocs/phpBB3")
for root, dirs, files in os.walk(".", topdown = True):
   for name in files:
       if name.endswith('.php'):
           print(name)
   for name in dirs:
       if name.endswith('.php'):
           print(name)
→ Ссылка