Задание 8 ОГЭ: как искать нужные строки в текстовом файле?
В практической части ОГЭ есть задание, где дают большой текстовый файл и просят найти, сколько раз встречается слово или строка. Как быстро искать в файле, не пролистывая всё руками? Можно ли это сделать через Python?
2 ответа
Задание на поиск в файле можно решать двумя путями: средствами программы (поиск по тексту) или кодом. Через Python — надёжнее и быстрее.
Базовый шаблон на Python:
count = 0
with open('24.txt', encoding='utf-8') as f:
for line in f:
if 'нужное_слово' in line:
count += 1
print(count)
Этот код считает, в скольких строках встречается слово.
Если нужно посчитать ВСЕ вхождения (слово может быть в строке несколько раз):
text = open('24.txt', encoding='utf-8').read()
print(text.count('нужное_слово'))
str.count() считает количество непересекающихся вхождений во всём тексте.
Полезные методы строк:
'abc' in line— есть ли подстрока;line.split()— разбить строку на слова по пробелам;line.startswith('...')/line.endswith('...')— начинается/заканчивается ли.
Частая ошибка: забывают encoding='utf-8' и получают кракозябры или ошибку на русских буквах. Всегда указывайте кодировку при открытии файла с русским текстом.
Если код писать не хочется, в текстовом редакторе (Word/LibreOffice/Блокнот) есть «Найти» (Ctrl+F) и «Найти и заменить» (Ctrl+H).
Хитрость: открываете «Заменить», в поле «Найти» пишете искомое слово, в «Заменить на» — то же слово, и жмёте «Заменить все». Программа покажет, сколько замен сделано — это и есть число вхождений. Но Python всё равно точнее, когда нужны сложные условия.