Как посчитать количество объектов (файлов и папок) в папке?
Имееется ввиду использование класса Path() , но не обязательно.
Вот такое решение мне кажется громоздким. Нет ли чего-то изящнее?
Задача решалась 100500 раз, видно плохо гуглил.
from pathlib import Path folder_name = input("folder name:") folder = Path(folder_name) if folder.is_dir(): folder_count = len([1 for file in folder.iterdir()]) print(f"В папке есть объектов")
Отслеживать
51.6k 200 200 золотых знаков 61 61 серебряный знак 242 242 бронзовых знака
Подсчитайте количество файлов в данной директории (папке) и выведите на экран
1. Пусть дана некоторая директория (папка). Подсчитайте количество файлов в данной
директории (папке) и выведите на экран.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Подсчитайте и выведите на экран количество пятерок полученных за год
ученик изучает англ. язык 4 раза в неделю и 34 уч. недели. Оценки ученика случайны (с2 до 5).
Выведите на экран все чётные числа от 2 до n включительно и подсчитайте их количество
Дана задача написать листинг задачу вывести на экран все чётные числа от 2 до n включительно и.

Реализовать вывод на экран списка каталогов и файлов в данной папке
Прошу помочь с написанием кода, с файлами только начал работать и не совсем понимаю, как.
94 / 63 / 33
Регистрация: 08.02.2021
Сообщений: 193
1 2 3 4 5
import os directory = 'your/path' files = os.listdir(directory) print(len(files))
Am I evil? Yes, I am!
![]()
![]()
16140 / 9774 / 2732
Регистрация: 21.10.2017
Посчитать количество файлов определенного типа в заданной папке. Python
Ты никогда не знаешь, сколько файлов нужно пересчитать в папке, пока не столкнешься с этой задачей. Но теперь ты можешь облегчить свою работу с помощью нашей нейросети онлайн, которая самостоятельно посчитает количество файлов нужного типа в заданной папке. Больше не нужно тратить время на рутинные задачи — нейросеть пишет текст, а ты можешь заниматься своим творчеством. Попробуй прямо сейчас, и ты убедишься, насколько просто и удобно это.
Создать текст по запросам:
Функция os.walk
Функция walk модуля os принимает один обязательный аргумент и несколько необязательных. В качестве обязательного аргумента должен быть передан адрес каталога.
Функция walk() возвращает объект-генератор, из которого получают кортежи. Каждый кортеж «описывает» очередной каталог из переданного в функцию дерева каталогов.
Каждый кортеж состоит из трех элементов:
- Адрес очередного каталога в виде строки.
- Список имен подкаталогов первого уровня вложенности в данный каталог. Если вложенных каталогов нет, список будет пустым.
- Список имен файлов первого уровня вложенности в данный каталог. Если вложенных файлов нет, список будет пустым.
Допустим, есть такое дерево каталогов:

Передадим каталог test функции os.walk() :
import os tree = os.walk('test') print(tree) for i in tree: print(i)
('test', ['cgi-bin'], ['index.html', 'dgs.png']) ('test/cgi-bin', ['another', 'backup'], ['hello.py']) ('test/cgi-bin/another', [], ['data.txt']) ('test/cgi-bin/backup', [], [])
Если передать абсолютный адрес, адреса каталогов также будут абсолютными:
import os for i in os.walk('/home/pl/test'): print(i)
('/home/pl/test', ['cgi-bin'], ['index.html', 'dgs.png']) ('/home/pl/test/cgi-bin', ['another', 'backup'], ['hello.py']) ('/home/pl/test/cgi-bin/another', [], ['data.txt']) ('/home/pl/test/cgi-bin/backup', [], [])
Поскольку walk() возвращает генератор, повторно извлечь из него данные нельзя. Поэтому, если возникает необходимость сохранить кортежи, генератор можно «превратить» в список кортежей:
import os tree = list(os.walk('test')) for i in tree: print(i)
('test', ['cgi-bin'], ['index.html', 'dgs.png']) ('test/cgi-bin', ['another', 'backup'], ['hello.py']) ('test/cgi-bin/another', [], ['data.txt']) ('test/cgi-bin/backup', [], [])
Чтобы получить полный адрес файла (абсолютный или относительный), следует воспользоваться функцией os.path.join :
import os.path for address, dirs, files in os.walk('test'): for name in files: print(os.path.join(address, name))
test/index.html test/dgs.png test/cgi-bin/hello.py test/cgi-bin/another/data.txt
Переменная address на каждой итерации связывается с первым элементом очередного кортежа (строкой, содержащей адрес каталога), dirs – со вторым элементом (списком подкаталогов), а files — со списком файлов этого каталога. Во вложенном цикле извлекается имя каждого файла из списка файлов.
У функции walk есть аргумент topdown , который по умолчанию имеет значение True . Если ему присвоить False , то обход дерева каталогов будет происходить не «сверху вниз» (от корневого к вложенным), а наоборот — «снизу вверх» (первыми будут подкаталоги).
import os tree = os.walk('test', topdown=False) for i in tree: print(i)
('test/cgi-bin/another', [], ['data.txt']) ('test/cgi-bin/backup', [], []) ('test/cgi-bin', ['another', 'backup'], ['hello.py']) ('test', ['cgi-bin'], ['index.html', 'dgs.png'])
