Разбор задания №12 ОГЭ по информатике: Поиск файлов по маске и размеру в операционной системе

Share
Разбор задания №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. Поиск средствами проводника операционной системы

Это классический способ, не требующий написания кода:

  1. Вход в каталог: Откройте рабочую папку задания (например, папку Задание 12).
  2. Строка поиска: В правом верхнем углу окна проводника найдите поисковую строку.
  3. Ввод маски:
    • Если нужны только текстовые файлы: введите *.txt
    • Если нужны документы Word: введите *.docx
    • Если нужны файлы PDF: введите *.pdf
  4. Фильтрация по размеру (если требуется по условию):
    • В ОС Windows можно ввести оператор размера: *.txt размер:>1024КБ или *.pdf size:>1MB.
    • Либо отсортировать найденные файлы по столбцу «Размер» и визуально отсечь те, что не подходят по условию.
  5. Фиксация ответа: В левом нижнем углу окна проводника (в строке состояния) отобразится общее число найденных элементов: «Элементов: 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? В ответе укажите только число.

Решение через проводник:

  1. Заходим в папку Task12.
  2. В поисковой строке вводим: *.htm.
  3. Ловушка проводника: Проводник может показать как файлы .htm, так и файлы .html.
  4. Чтобы этого избежать, переключите вид папки в режим «Таблица» (Details) и отсортируйте файлы по столбцу «Тип» (Type). Посчитайте только те строки, где тип файла строго .htm.
  5. Допустим, проводник нашёл 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? В ответе укажите только число.

Решение:

  1. Открываем каталог PROZA.
  2. В строке поиска проводника пишем: *.rtf.
  3. Переключаем отображение в режим «Таблица».
  4. Нажимаем на заголовок столбца «Размер», чтобы упорядочить файлы по возрастанию или убыванию.
  5. Находим границу в 100 КБ и считаем количество файлов, чей размер строго больше 100 Кбайт.
  6. Если файл имеет размер ровно 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? В ответе укажите только число.

Решение:

  1. Фраза «не более 512 Кбайт» на математическом языке означает: размер ≤ 512 КБ.
  2. В проводнике находим все файлы *.txt.
  3. Сортируем список по размеру.
  4. Считаем все файлы от самого маленького до файлов размером ровно 512 КБ включительно. Все файлы, размер которых 513 КБ и выше, отбрасываем.

Ответ: 19

4. Распространённые ловушки и частые ошибки

  1. Путаница расширений .htm и .html:
    • При вводе *.htm в проводнике Windows часто отображаются и файлы .html. Всегда сортируйте найденный список по столбцу «Тип» или используйте проверку через Python file.endswith('.htm').
  2. Нестрогие и строгие условия по размеру:
    • Более 1024 КБ → строго > 1024 (файл ровно 1024 КБ не берем).
    • Менее 500 КБ → строго < 500.
    • Не более 512 КБ → ≤ 512 (файл ровно 512 КБ включается в ответ).
    • Не менее 200 КБ → ≥ 200 (файл ровно 200 КБ включается в ответ).
  3. Поиск вне корневой папки задания:
    • Всегда убеждайтесь, что в момент запуска поиска вы находитесь в корне нужного каталога задания (а не в какой-то отдельной подпапке).
  4. Служебные скрытые файлы и ярлыки:
    • Если в папке присутствуют временные файлы (начинающиеся с тильды ~$имя.docx), они не должны учитываться при подсчёте.

Памятка для ученика

┌─────────────────────────────────────────────────────────────┐
│              ЧЕК-ЛИСТ ДЛЯ ЗАДАНИЯ №12 ОГЭ                   │
├─────────────────────────────────────────────────────────────┤
│ 1. Зайти в корневую папку задания.                          │
│ 2. Ввести в поиск маску расширения: *.txt, *.pdf, *.docx    │
│ 3. Включить вид «Таблица» и отсортировать по столбцу «Тип». │
│ 4. Проверить условие на размер:                             │
│    • «Более X»    → строго больше X                         │
│    • «Не более X» → меньше либо равно X                     │
│ 5. Сосчитать подходящие файлы вручную или через Python.     │
│ 6. Записать в бланк ответов только число.                   │
└─────────────────────────────────────────────────────────────┘

Read more

В этот день в истории: 03.10.1993

Событие из мира науки и технологий 1993 год: В Москве противостояние сторонников президента Ельцина и Верховного Совета (ВС РФ) переходит в фазу открытого вооружённого противостояния — сторонники ВС РФ прорывают кольцо блокады вокруг Белого дома, захватывают здание мэрии и требуют предоставления прямого эфира у телецентра «Останкино».

Скрытая опция полосы прокрутки Windows позволяет перейти в любую точку документа или списка

В блоге Microsoft The Old New Thing ветеран Windows Рэймонд Чен поделился краткой историей сочетаний клавиш для полосы прокрутки. Обсуждая различные варианты взаимодействия с ней, он указал на «скрытый» ярлык, который требует удерживать клавишу Shift при щелчке в любом месте полосы прокрутки. Читать далее Источник

Metro 2033 и Last Light получат бесплатное обновление с улучшенной графикой и поддержкой 120 FPS

Возвращаться в московское метро скоро станет приятнее, насколько это вообще возможно среди мутантов и радиации. 4A Games и Deep Silver анонсировали бесплатное обновление для Metro 2033 Redux и Metro: Last Light Redux. На ПК оно выйдет 22 октября, а на PS5 и Xbox Series X|S — 29 октября. Читать новость