← Все вопросы

Как получить список всех файлов в папке на Python?

Задан 12 месяцев назад713 просмотров3 ответа
11

Нужно пройтись по всем файлам в каталоге (например, обработать все .txt). Как получить их список?

3 ответа

20
✓ Принятый ответ — помог автору

Самое простое — os.listdir, отдаёт имена всего, что лежит в папке (и файлы, и подпапки):

import os

for name in os.listdir('data'):
    print(name)

Если нужны только определённые файлы по маске, удобнее pathlib:

from pathlib import Path

for p in Path('data').glob('*.txt'):
    print(p)        # это уже полный путь-объект

glob('*.txt') сразу отфильтрует только нужные, а Path даёт готовый путь, который можно открывать через open(p). Для рекурсивного обхода вложенных папок — rglob('*.txt').

Ирина Ионцева listdir даёт только имена без папки, к ним потом надо os.path.join('data', name) · 12 месяцев назад
Саша Маленький glob по маске — то что нужно, когда не весь мусор из папки берёшь · 12 месяцев назад
5

os.listdir('папка').

4

Ещё есть os.scandir — он быстрее listdir на больших папках и сразу говорит, файл это или директория (entry.is_file()).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект