Разбор задания №12 ОГЭ по информатике: Поиск файлов по маске и размеру в операционной системе
Задание №12 в ОГЭ по информатике проверяет практические умения работать с файловой системой: осуществлять поиск файлов в заданном каталоге и его подкаталогах с использованием масок имён, фильтрации по типам (расширениям) и информационному объёму файлов.
За правильное выполнение задания даётся 1 первичный балл. Задачу можно решить как штатными средствами проводника операционной системы (Windows, Astra Linux, Альт Линукс), так и с помощью короткой программы на Python, которая гарантирует 100% точность результата без сюрпризов поисковой индексации.
1. Теоретический фундамент: маски файлов и расширения
Имя любого файла на компьютере состоит из двух частей, разделённых точкой: собственного имени и расширения (типа файла), например: доклад.docx, index.html, архив.zip.
Специальные символы в масках поиска:
- Звёздочка (
*) — заменяет любую последовательность символов любой длины (в том числе пустую последовательность, то есть ноль символов). - Знак вопроса (
?) — заменяет строго один любой символ.
Примеры работы масок:
*.txt— все файлы с расширением.txt.*.htm*— файлы с расширениями.htm,.htmlи любыми другими, начинающимися наhtm.глава?.docx— файлыглава1.docx,главаА.docx, но НЕглава12.docx(так как один знак?соответствует ровно одному символу).*чехов*.*— файлы с любым расширением, в названии которых встречается слово «чехов».
Единицы измерения размера файлов:
В условиях задач часто задаётся фильтрация по размеру:
- 1 Кбайт = 1024 байта
- 1 Мбайт = 1024 Кбайта = 1 048 576 байт
2. Основные способы решения
Способ 1. Поиск средствами проводника операционной системы
Это классический способ, не требующий написания кода:
- Вход в каталог: Откройте рабочую папку задания (например, папку
Задание 12). - Строка поиска: В правом верхнем углу окна проводника найдите поисковую строку.
- Ввод маски:
- Если нужны только текстовые файлы: введите
*.txt - Если нужны документы Word: введите
*.docx - Если нужны файлы PDF: введите
*.pdf
- Если нужны только текстовые файлы: введите
- Фильтрация по размеру (если требуется по условию):
- В ОС Windows можно ввести оператор размера:
*.txt размер:>1024КБили*.pdf size:>1MB. - Либо отсортировать найденные файлы по столбцу «Размер» и визуально отсечь те, что не подходят по условию.
- В ОС Windows можно ввести оператор размера:
- Фиксация ответа: В левом нижнем углу окна проводника (в строке состояния) отобразится общее число найденных элементов: «Элементов: 14».
Важная деталь для Linux (Astra Linux / Альт Линукс): В файловых менеджерах (Dolphin, Nemo, Thunar) поиск вызывается сочетанием клавиш Ctrl + F или кликом по значку лупы. Чтобы поиск прошёл по всем вложенным папкам, убедитесь, что включён режим рекурсивного поиска («Везде в этой папке»).
Способ 2. Автоматический подсчёт через Python (Самый надёжный метод)
Иногда встроенный поиск Windows или Linux может выдавать лишние скрытые системные файлы, кэш или файлы с похожими расширениями (например, поиск по *.htm может случайно зацепить .html).
Программа на Python обходит абсолютно все подкаталоги через функцию os.walk() и считает только то, что нужно.
Шаблон для подсчёта файлов по расширению:
Python
import os
# Укажите путь к папке задания (точка означает текущую папку)
path = r"C:\Задание 12"
count = 0
for root, dirs, files in os.walk(path):
for file in files:
# Проверяем расширение файла строго по его окончанию
if file.endswith(".txt"):
count += 1
print("Количество файлов:", count)
Шаблон с проверкой размера файла:
Python
import os
path = r"C:\Задание 12"
count = 0
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith(".pdf"):
full_path = os.path.join(root, file)
# os.path.getsize возвращает размер файла в байтах
size_in_kb = os.path.getsize(full_path) / 1024
# Условие: размер строго больше 1024 Кб
if size_in_kb > 1024:
count += 1
print("Количество подходящих файлов:", count)
3. Разбор типовых примеров из банка ФИПИ и Решу ОГЭ
Пример 1. Базовый подсчёт файлов с конкретным расширением
Условие:Сколько файлов с расширением .htm содержится в подкаталогах каталога Task12? В ответе укажите только число.
Решение через проводник:
- Заходим в папку
Task12. - В поисковой строке вводим:
*.htm. - Ловушка проводника: Проводник может показать как файлы
.htm, так и файлы.html. - Чтобы этого избежать, переключите вид папки в режим «Таблица» (Details) и отсортируйте файлы по столбцу «Тип» (Type). Посчитайте только те строки, где тип файла строго
.htm. - Допустим, проводник нашёл 12 файлов
.htmи 4 файла.html. В ответ записываем только 12.
Решение через Python:
Python
import os
count = 0
for root, dirs, files in os.walk(r"C:\Task12"):
for f in files:
if f.endswith(".htm"):
count += 1
print(count)
Скрипт проверяет точное совпадение окончания строки и выдаёт точный ответ без смешивания с .html.
Ответ: 12
Пример 2. Поиск файлов с ограничением по объёму
Условие:Сколько файлов с расширением .rtf объёмом более 100 Кбайт содержится в подкаталогах каталога PROZA? В ответе укажите только число.
Решение:
- Открываем каталог
PROZA. - В строке поиска проводника пишем:
*.rtf. - Переключаем отображение в режим «Таблица».
- Нажимаем на заголовок столбца «Размер», чтобы упорядочить файлы по возрастанию или убыванию.
- Находим границу в 100 КБ и считаем количество файлов, чей размер строго больше 100 Кбайт.
- Если файл имеет размер ровно 100 Кбайт, по условию задачи («более 100») он не учитывается.
Проверка на Python:
Python
import os
count = 0
for root, dirs, files in os.walk(r"C:\PROZA"):
for file in files:
if file.endswith(".rtf"):
size_kb = os.path.getsize(os.path.join(root, file)) / 1024
if size_kb > 100:
count += 1
print(count)
Ответ: 7
Пример 3. Поиск файлов с ограничением «не более»
Условие:Сколько файлов с расширением .txt объёмом не более 512 Кбайт содержится в подкаталогах каталога DEMO? В ответе укажите только число.
Решение:
- Фраза «не более 512 Кбайт» на математическом языке означает: размер ≤ 512 КБ.
- В проводнике находим все файлы
*.txt. - Сортируем список по размеру.
- Считаем все файлы от самого маленького до файлов размером ровно 512 КБ включительно. Все файлы, размер которых 513 КБ и выше, отбрасываем.
Ответ: 19
4. Распространённые ловушки и частые ошибки
- Путаница расширений .htm и .html:
- При вводе
*.htmв проводнике Windows часто отображаются и файлы.html. Всегда сортируйте найденный список по столбцу «Тип» или используйте проверку через Pythonfile.endswith('.htm').
- При вводе
- Нестрогие и строгие условия по размеру:
- Более 1024 КБ → строго
> 1024(файл ровно 1024 КБ не берем). - Менее 500 КБ → строго
< 500. - Не более 512 КБ →
≤ 512(файл ровно 512 КБ включается в ответ). - Не менее 200 КБ →
≥ 200(файл ровно 200 КБ включается в ответ).
- Более 1024 КБ → строго
- Поиск вне корневой папки задания:
- Всегда убеждайтесь, что в момент запуска поиска вы находитесь в корне нужного каталога задания (а не в какой-то отдельной подпапке).
- Всегда убеждайтесь, что в момент запуска поиска вы находитесь в корне нужного каталога задания (а не в какой-то отдельной подпапке).
- Служебные скрытые файлы и ярлыки:
- Если в папке присутствуют временные файлы (начинающиеся с тильды
~$имя.docx), они не должны учитываться при подсчёте.
- Если в папке присутствуют временные файлы (начинающиеся с тильды
Памятка для ученика
┌─────────────────────────────────────────────────────────────┐
│ ЧЕК-ЛИСТ ДЛЯ ЗАДАНИЯ №12 ОГЭ │
├─────────────────────────────────────────────────────────────┤
│ 1. Зайти в корневую папку задания. │
│ 2. Ввести в поиск маску расширения: *.txt, *.pdf, *.docx │
│ 3. Включить вид «Таблица» и отсортировать по столбцу «Тип». │
│ 4. Проверить условие на размер: │
│ • «Более X» → строго больше X │
│ • «Не более X» → меньше либо равно X │
│ 5. Сосчитать подходящие файлы вручную или через Python. │
│ 6. Записать в бланк ответов только число. │
└─────────────────────────────────────────────────────────────┘