Разбор задания 12. Файловая система: количество и объём файлов — теория и разбор
Маски имён файлов (* и ?) и перевод байтов в килобайты по степеням двойки — разбор примера и проверка в Python.
Задание 12. Файловая система: количество и объём файлов — теория и разбор
В отличие от задания 11, здесь не нужно ничего читать внутри файлов — только считать сами файлы по маске имени и складывать их размеры.
Что нужно знать
Маска — это шаблон имени файла с двумя специальными символами:
*— любая последовательность символов (в том числе пустая);?— ровно один произвольный символ.
Маска *.docx находит все файлы с расширением .docx, независимо от того, как называется файл до точки.
Информационный объём переводится между единицами по степеням двойки, а не десяти:
1 КБ = 1024 байт, 1 МБ = 1024 КБ, 1 ГБ = 1024 МБ.
При подсчёте суммарного объёма группы файлов складываются размеры именно ТЕХ файлов, что подошли под маску — остальные файлы в папке (даже если их видно в списке) в сумму не входят.
Правило перевода: чтобы получить килобайты из байтов, делить на 1024 (а не на 1000) — и так для каждого следующего уровня (МБ, ГБ).
Разбор примера
В архиве «Отчёты» находятся файлы (размер указан в байтах):
| Файл | Размер, байт |
|---|---|
| otchet1.docx | 20480 |
| otchet2.docx | 30720 |
| smeta.xlsx | 15360 |
| plan.docx | 10240 |
| foto.jpg | 51200 |
| notes.txt | 2048 |
| draft.docx | 40960 |
Сколько файлов с расширением .docx содержится в архиве и каков их суммарный информационный объём в килобайтах?
Как думать. Сначала отбираем только файлы, подходящие под маску *.docx, игнорируя остальные расширения, затем складываем их размеры и переводим сумму в килобайты делением на 1024.
Показать решение и ответ
Под маску *.docx подходят четыре файла: otchet1.docx, otchet2.docx, plan.docx, draft.docx. Остальные (smeta.xlsx, foto.jpg, notes.txt) не подходят — у них другие расширения.
Суммарный размер: 20480 + 30720 + 10240 + 40960 = 102400 байт.
Переводим в килобайты: 102400 ÷ 1024 = 100 КБ.
Ответ: 4 файла, 100 КБ
Как решить в Python
files = {
'otchet1.docx': 20480, 'otchet2.docx': 30720, 'smeta.xlsx': 15360,
'plan.docx': 10240, 'foto.jpg': 51200, 'notes.txt': 2048, 'draft.docx': 40960,
}
docx_files = {name: size for name, size in files.items() if name.endswith('.docx')}
print('Количество:', len(docx_files)) # 4
print('Объём (байт):', sum(docx_files.values())) # 102400
print('Объём (КБ):', sum(docx_files.values()) / 1024) # 100.0
По этой теме
Шпаргалка для задания 12. Файловая система
Компактная шпаргалка на 2 страницы по заданию 12 ОГЭ информатики «Файловая система»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 16. Программирование
Компактная шпаргалка на 2 страницы по заданию 16 ОГЭ информатики «Программирование»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 15. Исполнитель Робот
Компактная шпаргалка на 2 страницы по заданию 15 ОГЭ информатики «Исполнитель Робот»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 14. Электронные таблицы
Компактная шпаргалка на 2 страницы по заданию 14 ОГЭ информатики «Электронные таблицы»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.