Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Как найти совпадающие слова в файлах с Portacle?

16.09.2020, 22:48. Показов 5805. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опишу задачу, используя регулярное выражение для примера. А Вы объясните, пожалуйста, пошагово и с кодом, как выполнить нужное в Portacle.

Надо поискать в папке (а если можно, то и во вложенных тоже) файлы, соответствующие запросу, и чтобы можно было выводить найденные файлы на экран по одному для просмотра, и чтобы фон всех совпадающих слов подсвечивался одновременно.
Вместо (ПРОПУСК ТЕКСТА) надо что-то придумать, чтобы этот фрагмент выпадал из результата, возвращаемого регуляркой. Надо искать файлы, которые одновременно содержат обе части, написанные до (ПРОПУСК ТЕКСТА) и после.
Как вариант, можно для второй последовательности, делать поиск в найденном.
Надо, чтобы подсвечивалось не только два совпадения, а все, которые есть в документе. Размер обрабатываемых файлов - одна или несколько страниц.
Пример регулярного выражения:
кашел|кашл(ПРОПУСК ТЕКСТА)насморк|ринит|синусит|сопл|выделе н.+нос|нос.*выделен |гайморит
Вместо двух частей, как в этом регулярном выражении, может быть больше (меньше то же возможно, только это маловероятно).
Регулярку не стал делать, чтобы искало все слово вместе с окончанием (некоторые слова показаны здесь укороченными для совпадения с разными падежами), планирую доделать потом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.09.2020, 22:48
Ответы с готовыми решениями:

Как найти самые длинные слова во всех файлах?
Как найти самые длинные слова во всех файлах.В моем случае я ищу каждого файла отдельно, но как вместе не понимаю, причем нужно...

Найти совпадающие слова в тексте
Подскажите в чем ошибка ? Всегда выводится первое слово #include <stdio.h> #include <conio.h> #include <string.h> ...

В предложении найти все слова совпадающие с маской
Всем доброго времени суток! Очень нужна ваша помощь т.к. я совсем не силен в Регулярных выражениях. Пытался изучать, но тщетно. :cry: ...

44
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 10:52  [ТС]
Студворк — интернет-сервис помощи студентам
Из Geany запустил.

File "poisk1.py", line 5
for root, dirs, files in os.walk('.'):
^
IndentationError: expected an indented block
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.09.2020, 10:58
А эту строчку убери
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 11:34  [ТС]
А как сделать, чтобы строки с not found не выводились?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.09.2020, 11:35
С тебе скажу одну вещь, но только по секрету. Никому не говори.
Кликните здесь для просмотра всего текста
Закомментируй строчку с выводом 'not found'
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 11:39  [ТС]
Пробовал. Выводит open filename: путь

Добавлено через 44 секунды
То есть надо оставить в консоли только строки с совпадениями.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.09.2020, 11:42
Цитата Сообщение от supmener Посмотреть сообщение
То есть надо оставить в консоли только строки с совпадениями.
Если надо - то и оставь.

Ты, что ли, совсем не понимаешь питон? Возьми листочек и нарисуй блок-схему поэтому кусочку кода:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    for filename in files:
        if not filename.endswith('.txt'):
            continue
        full_filename = os.path.join(root, filename)
        print('\nopen filename:', full_filename)
        with open(full_filename, 'rt') as f:
            text = f.read()
        if len(re.findall(r'(насморк|ринит|синусит|сопл|выделен.+нос|нос.*выделен|гайморит)', text, flags=re.I)) == 0:
            print('not found1!')
            continue
        if len(re.findall(r'(кашел|кашл)', text, flags=re.I)) == 0:
            print('not found2!')
            continue
        print('ok')
0
Заблокирован
17.09.2020, 12:22
supmener, ты вроде Linux пользуешься.
У тебя уже полно готовых инструментов для таких задач.
Миниатюры
Как найти совпадающие слова в файлах с Portacle?  
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 12:31  [ТС]
Благодарю. Только не понимаю, как использовать пример на скриншоте для поставленной задачи.
0
Заблокирован
17.09.2020, 12:36
supmener, вот так
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 12:39  [ТС]
А Вы не могли бы подсказать, что конкретно надо писать в консоли, если уже прочитали то, что по ссылке?
0
Заблокирован
17.09.2020, 13:12
Все зависит от того, что ты хочешь получить.
Вот я создал три файла в паке /tmp/
В двух из них есть твой паттерн, а в одном - target2 - нет.
Миниатюры
Как найти совпадающие слова в файлах с Portacle?  
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 13:17  [ТС]
Надо отобрать файлы, в которых одновременно есть совпадения по обоим регулярным выражениям:
кашел|кашл
насморк|ринит|синусит|сопл|выделен.+нос| нос.*выделен |гайморит
выводить их на экран (содержимое файлов) и подсвечивать совпадения, выдаваемые обоими регулярными выражениями одновременно.
0
Заблокирован
17.09.2020, 13:44
Bash
1
for i in "/tmp/*.txt"; do  egrep -w -A 100  -B  100  '(сопл|кашел)' $i; break; done
Читай что по ссылке. Учись.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 16:08  [ТС]
Этот код не решает поставленной задачи.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
17.09.2020, 16:19
supmener, а ты пытаешься хоть что то сам писать и думать? Или ты только мастер вопросы придумывать и код копипастить?
3
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 16:46  [ТС]
Человек подсказал, что это можно сделать в Emacs. А в другой теме выяснили, что в командной строке Линукс, то что нужно, сделать нельзя. В то же время, человек который это объяснил, как я понял потом, не знал точно, в чем заключается задача.
0
Заблокирован
17.09.2020, 19:09
Цитата Сообщение от supmener Посмотреть сообщение
Этот код не решает поставленной задачи.
А что же он делает? Он ищет во всех файлах в папке фалы с расширением txt, а потом ищет там твои паттерны и если в файлах он есть, то выводит файлы и их содержимое на экран.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 20:50  [ТС]
И каким же образом этот код ищет файлы, в которых одновременно присутствуют совпадения от обоих регулярных выражений? У Вас в коде одно регулярное выражение, а не два.
0
Заблокирован
17.09.2020, 22:05
supmener, я тебе пример показал как сделать, а дальше ты уже ищи как и что тебе надо и как надо, какие угодно паттерны.
Читай man egrep и смотри паттер-матчинг.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
17.09.2020, 22:11  [ТС]
Если это невозможно, то смысла искать нету. Это уже в другой теме стало понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2020, 22:11

Найти слова совпадающие с начальным отрезком латинского алфавита
Дана строка символов, состоящая из отдельных слов, обособленных пробелом. Найти слова, которые совпадают с начальным отрезком латинского...

В тексте найти слова, совпадающие по трем последним символам
Пользователь вводит строку – осмысленное текстовое сообщение, слова которого разделяются пробелами и знаками препинания. Найти в тексте...

найти и удалить слова совпадающие с начальным отрезком латинского алфавита!
Срочно при срочно надо сдать задачу!!!Помогите Дана не пустая последовательность слов из строчных букв между соседними словами запятая за...

Найти и напечатать все слова в точности совпадающие с предыдущим словом
Помогите написать программу: Задана последовательность слов, разделенных одним или несколькими пробелами, оканчивающаяся подряд тремя...

Найти в файлах ключевые слова
Здравствуйте, нужно поискать слова из файла в других файлах, при этом файлов у нас много, и пути к этим файлам записаны в файле patch.txt,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru