0 / 0 / 0
Регистрация: 02.11.2017
Сообщений: 4

Парсинг txt

29.01.2018, 15:08. Показов 3046. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru