← Все вопросы
Как получить список всех файлов в папке на Python?
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()).
Ваш ответ
Войдите, чтобы ответить на вопрос.