Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.11.2017
Сообщений: 4

Парсинг txt

29.01.2018, 15:08. Показов 3040. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые программисты.
Сыну в 5 классе задали на питоне выполнить следующее задание:

Создать файл с именем hw05.py. Поместите все выполненные задания в файл.
Отправка задания осуществляется как обычно.


В файле Trace.txt находятся логи системы событий.
пример логов из файла
Кликните здесь для просмотра всего текста

00:06:47 [ScenarioProcessor] [triggerName=Новое уведомление, triggerType=События длительной стоянки, triggerId=242, eventId: 6766dbcb-137b-40b4-933f-d9f484a93c88] Processing event. Events in queue: 0.
00:10:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: 92a65857-b66b-45ac-8e32-bbbd5a432151] Processing event. Events in queue: 0.
00:10:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=92a65857-b66b-45ac-8e32-bbbd5a432151, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:16:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: fad5b8ed-b9b4-46e7-bca7-987ec44a880a] Processing event. Events in queue: 0.
00:16:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=fad5b8ed-b9b4-46e7-bca7-987ec44a880a, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:17:48 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: a5ea348e-96d0-4a8b-8ece-4ac954b70c55] Processing event. Events in queue: 0.
00:17:48 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=a5ea348e-96d0-4a8b-8ece-4ac954b70c55, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:21:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: 8fcb0fdc-894f-4bfe-b940-5738ac3289b8] Processing event. Events in queue: 0.
00:21:45 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=8fcb0fdc-894f-4bfe-b940-5738ac3289b8, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:24:52 [ScenarioProcessor] [triggerName=Новое уведомление, triggerType=События длительной стоянки, triggerId=242, eventId: 2f9b55a2-af5f-4a60-b684-f8dbac46a7d8] Processing event. Events in queue: 0.
00:31:07 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId: b3e93dd8-4775-47b6-97ed-fdc5ecf870bb] Processing event. Events in queue: 0.
00:31:07 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId=b3e93dd8-4775-47b6-97ed-fdc5ecf870bb, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:31:07 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId=b3e93dd8-4775-47b6-97ed-fdc5ecf870bb, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 2.
00:32:52 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: 901e9135-b266-4dd2-bcf0-b9cee42890ff] Processing event. Events in queue: 0.
00:32:52 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=901e9135-b266-4dd2-bcf0-b9cee42890ff, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:33:04 [ScenarioProcessor] [triggerName=Съем штанг, triggerType=События срабатывания универсального датчика, triggerId=365, eventId: 212f60e8-7576-4fba-8085-d32858fb7211] Processing event. Events in queue: 0.
00:33:04 [ScenarioProcessor] [triggerName=Съем штанг, triggerType=События срабатывания универсального датчика, triggerId=365, eventId=212f60e8-7576-4fba-8085-d32858fb7211, message=Уведомление (Студио)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:33:04 [ScenarioProcessor] [triggerName=Съем штанг, triggerType=События срабатывания универсального датчика, triggerId=365, eventId=212f60e8-7576-4fba-8085-d32858fb7211, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 2.
00:38:29 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId: 421dd496-8cb2-4960-87bc-a297df296820] Processing event. Events in queue: 0.
00:38:29 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId=421dd496-8cb2-4960-87bc-a297df296820, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:38:29 [ScenarioProcessor] [triggerName=Критическая, triggerType=События превышения критической скорости, triggerId=37, eventId=421dd496-8cb2-4960-87bc-a297df296820, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:47:57 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId: 4890762a-c2aa-4edf-88e1-5e759b02b18d] Processing event. Events in queue: 0.
00:47:57 [ScenarioProcessor] [triggerName=Потеря связи , triggerType=События ухода со связи, triggerId=679, eventId=4890762a-c2aa-4edf-88e1-5e759b02b18d, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
00:48:20 [ScenarioProcessor] [triggerName=стоянки более 15минут, triggerType=События длительной стоянки, triggerId=487, eventId: 7e42358b-3150-4d11-a205-e83bde5f2029] Processing event. Events in queue: 0.
00:48:20 [ScenarioProcessor] [triggerName=стоянки более 15минут, triggerType=События длительной стоянки, triggerId=487, eventId=7e42358b-3150-4d11-a205-e83bde5f2029, message=Уведомление (Email)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
03:29:27 [ScenarioProcessor] [triggerName=МАЗы не на связи, triggerType=События ухода со связи, triggerId=596, eventId: e497f73e-4800-4f66-bacc-e9583f9a9b2d] Processing event. Events in queue: 8.
03:29:27 [ScenarioProcessor] [triggerName=МАЗы не на связи, triggerType=События ухода со связи, triggerId=596, eventId=e497f73e-4800-4f66-bacc-e9583f9a9b2d, message=Уведомление (Студио)]triggerEventMs: 0, addresseesMs: 0, channelMs: 6, sendingMs: 0.
03:29:27 [ScenarioProcessor] [triggerName=МАЗы не на связи, triggerType=События ухода со связи, triggerId=596, eventId: be54d950-68de-4bc0-8c7f-cc14a9957d2b] Processing event. Events in queue: 26.
03:29:27 [ScenarioProcessor] [triggerName=МАЗы не на связи, triggerType=События ухода со связи, triggerId=596, eventId=be54d950-68de-4bc0-8c7f-cc14a9957d2b, message=Уведомление (Студио)]triggerEventMs: 0, addresseesMs: 0, channelMs: 0, sendingMs: 0.
03:29:27 [ScenarioProcessor] [triggerName=МАЗы не на связи, triggerType=События ухода со связи, triggerId=596, eventId: 0e89edfa-ed0e-470b-add8-02718a9b8439] Processing event. Events in queue: 25.


Пример, строки из логов:

00:06:47 [ScenarioProcessor] [triggerName=Новое уведомление, triggerType=События длительной стоянки, triggerId=242, eventId: 6766dbcb-137b-40b4-933f-d9f484a93c88] Processing event. Events in queue: 0.


Где 00:06:47 - Время в UTC события, [ScenarioProcessor] - генератор событий, triggerName=Новое уведомление - название уведомления, triggerType=События длительной стоянки - тип уведомления.

Требуется используя регулярные выражения подсчитать и вывести в консоль для каждого названия уведомления, сколько таких событий было зарегистрировано, отсортированные по убыванию. В формате <название уведомления>: <количество событий>.
Например:
Новое уведомление - название уведомления: 15
Съем штанг : 10

Требуется подсчитать и вывести в консоль для каждого типа уведомления, сколько таких событий было зарегистрировано, отсортированные по убыванию. В формате <тип уведомления>: <количество событий>.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2018, 15:08
Ответы с готовыми решениями:

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

Python v.2.7 Как открыть второй 2.txt путь к которому прочитали из первого 1.txt
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался. Кратко: Прочесть путь к файлу .txt и по нему, открыть на редактирование...

Из файла 1.txt взять n первых и n последних строк, и сохранить их как файл 2.txt
Подскажите пожалуйста, как из файла 1.txt взять n первых и n последних строк, и сохранить их как файл 2.txt. Питон почти не знаю, но вот...

3
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
29.01.2018, 20:31
Python
1
2
3
4
5
6
7
from collections import Counter
 
###
### читаете файл тут в переменную s
###
 
print(*('{}: {}'.format(x[0], x[1]) for x in Counter(re.findall(r'triggerType=(.*?), triggerId', s)).most_common()), sep='\n')

Code
1
2
3
4
События ухода со связи: 17
События превышения критической скорости: 6
События длительной стоянки: 4
События срабатывания универсального датчика: 3
Добавлено через 1 минуту
Что же это за школа, где сына заставляют решать такие задачи? Я бы её рекомендовал друзьям.
Уже три задачи от Вас подобных, меня аж прям заинтересовало.
3
0 / 0 / 0
Регистрация: 02.11.2017
Сообщений: 4
01.02.2018, 10:35  [ТС]
Спасибо за помощь.
Сперва ругался, что re не определен. Добавили его импорт, но что-то не получается, выдается ошибка

Traceback (most recent call last):
File "...\Programs\Python\Python36\homework07 .py", line 7, in <module>
print(*('{}: {}'.format(x[0], x[1]) for x in Counter(re.findall(r'triggerType=(.*?), triggerId', s)).most_common()), sep='\n')
File "...\Programs\Python\Python36\lib\re.py" , line 222, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object



Python
1
2
3
4
import re
from collections import Counter
s = open("trace.txt")
print(*('{}: {}'.format(x[0], x[1]) for x in Counter(re.findall(r'triggerType=(.*?), triggerId', s)).most_common()), sep='\n')
Цитата Сообщение от Jabbson Посмотреть сообщение
Что же это за школа, где сына заставляют решать такие задачи? Я бы её рекомендовал друзьям.
Уже три задачи от Вас подобных, меня аж прям заинтересовало.
Физико-математический лицей № 30 на Ваське, СПб. Там просто студенты проводят дополнительные занятия проходя практику.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
01.02.2018, 10:57
Цитата Сообщение от AnnaMikulova Посмотреть сообщение
s = open("trace.txt")
файл читать надо
Python
1
2
3
f = open('trace.txt')
s = f.read()
f.close()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2018, 10:57
Помогаю со студенческими работами здесь

Подскажите как подключить input.txt and output.txt
s = input() n = int(s.split(&quot; &quot;)) m = int(s.split(&quot; &quot;)) k = int(s.split(&quot; &quot;)) i = 1 if (n+m)%k == 0: i=(n+m)//k else: ...

Input.txt и output.txt
На Паскале, есть вот такой код: var input, output : string; begin assign(input,'input.txt'); reset(input); ...

Парсинг txt документа
Привет, не могу сообразить как сделать парсинг документов {txt}, я сделал легкий код, но он работает не корректно. Пример txt...

Парсинг txt файл
Есть файл в котором содержаться даты и когда скрипт найдет одну из дат что я введу необходимо вывести 5 строчек за этой датой. как...

В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru