Получить абсолютные пути ко всем файлам в дереве директорий

Я не нашёл функцию ни в glob, ни в os, которая возвращает все файлы дерева каталогов. Есть ли такая функция? Если да, то приведите её. Если нет, то приведите Вашу реализацию получения всех абсолютных путей до файлов, начиная с заданной директории.


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

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

Один из самых компактных способов:

from pathlib import Path
files = []
for p in Path(path).rglob('*'):
    files.append(str(p.parent)+p.name)
→ Ссылка
Автор решения: MaxU

Используя glob.glob():

files = [os.path.abspath(f) for f in glob.glob(f"{path}/**/*")]

Используя pathlib.Path.rglob():

files = [str(f.absolute()) for f in Path(path).rglob("*")]

Используя pathlib.Path.glob():

files = [str(f.absolute()) for f in Path(path).glob("**/*")]

Импорт класса Path вне зависимости от версии Python:

try:
    from pathlib import Path       # Python 3.x
except ImportError:
    from pathlib2 import Path      # Python 2.x  (pip install pathlib2)
→ Ссылка