Разбор задания 11. Поиск информации в файлах и каталогах — теория и разбор
Двухшаговая техника поиска: найти файл среди папок, затем найти фразу внутри файла — разбор примера и проверка в Python.
Задание 11. Поиск информации в файлах и каталогах — теория и разбор
Это практическое задание выполняется за настоящим компьютером с готовым архивом файлов, но сама техника поиска — универсальный навык, который можно освоить и без компьютера, на понятном примере.
Что нужно знать
Задание всегда состоит из двух шагов:
- Найти нужный файл среди множества папок и подпапок — обычно это большой архив текстов (например, папка «Проза» с подпапками по авторам).
- Найти нужный фрагмент внутри файла — открыть файл и через поиск по документу (
Ctrl+F) найти конкретную фразу, имя или число, о котором спрашивает задание.
Ответом почти всегда служит слово или короткая фраза из найденного текста — имя героя, название места, число из текста, а не файл целиком.
При поиске фразы внутри документа надёжнее искать не всю фразу целиком, а короткий уникальный фрагмент без окончаний — если поиск не находит «мерехлюндии», стоит попробовать «мерехлюнди» без последних букв: точная форма слова в тексте может отличаться падежом или опечаткой.
Практический приём: перед поиском стоит заменить букву «ё» на «е» в поисковом запросе — многие тексты набраны без «ё», и поиск с «ё» может ничего не найти там, где нужный фрагмент есть.
Разбор примера
Представим упрощённый архив с текстами — структура папок:
Проза/
├── Чехов/
│ ├── tri_sestry.txt
│ └── vishnevyy_sad.txt
├── Тургенев/
│ └── otcy_i_deti.txt
└── Гоголь/
└── revizor.txt
Файл tri_sestry.txt содержит строку: Маша: Сегодня я в мерехлюндии.
Задание: определите, кто из героев произносит фразу со словом «мерехлюндия», и в каком файле это происходит.
Как думать. Раз это художественный текст, а не название файла, слово нужно искать не в именах файлов, а внутри содержимого — то есть открывать файлы по очереди (или использовать поиск по содержимому папки) и применять Ctrl+F уже внутри каждого файла.
Показать решение и ответ
Поиск по названиям файлов ничего не даст — слово «мерехлюндия» не входит в имя файла. Нужно искать по содержимому: последовательно открываем файлы в папке «Чехов» (или запускаем поиск по тексту сразу во всех файлах, если программа это поддерживает) и в каждом делаем Ctrl+F → «мерехлюндия».
Совпадение находится в файле tri_sestry.txt, в строке Маша: Сегодня я в мерехлюндии. — перед репликой стоит имя героини.
Ответ: Маша, файл tri_sestry.txt
Как решить в Python
На экзамене поиск делают руками через Ctrl+F, но для тренировки полезно понимать, что программа делает то же самое — ищет подстроку во всех файлах папки:
import os
root = 'Проза'
query = 'мерехлюнди' # без окончания — устойчивее к падежам
for dirpath, _, filenames in os.walk(root):
for name in filenames:
path = os.path.join(dirpath, name)
with open(path, encoding='utf-8') as f:
for line_no, line in enumerate(f, 1):
if query in line:
print(f'{path}:{line_no}: {line.strip()}')
Такой скрипт перебирает все файлы во всех подпапках и печатает строки с совпадением — ровно то же самое, что делает Ctrl+F, только сразу по всему архиву, а не по одному файлу за раз.
По этой теме
Шпаргалка для задания 11. Поиск информации в текстовом файле
Компактная шпаргалка на 2 страницы по заданию 11 ОГЭ информатики «Поиск информации в текстовом файле»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 16. Программирование
Компактная шпаргалка на 2 страницы по заданию 16 ОГЭ информатики «Программирование»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 15. Исполнитель Робот
Компактная шпаргалка на 2 страницы по заданию 15 ОГЭ информатики «Исполнитель Робот»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.
Шпаргалка для задания 14. Электронные таблицы
Компактная шпаргалка на 2 страницы по заданию 14 ОГЭ информатики «Электронные таблицы»: формулы, алгоритм решения и разбор примера — держите под рукой при подготовке.