03
Окт
2017

Извлечение данных из лог файла

Чтобы не проверять всю статистику и не ломать глаза глядя на лог файл, я решил написать небольшой скрипт, который вытаскивает из всего лога, только нужные мне пункты статистики. Вопрос:
Как выделить из всего лога нужные мне пункты полностью?

Пример маленького кусочка лога:

Scenario statistics:

Total scenarios attempted:                2
Total scenarios succeeded:                2
Total scenarios failed   :                0
Total scenarios aborted  :                0
TCP (over IPv4) throughput statistics: Port 0
rx packets ok:             490022
rx header bytes ok:        800456
rx data bytes ok:          656691968
rx packets duplicate:      0
rx header bytes duplicate: 0
rx data bytes duplicate:   0

Как сделать так, чтобы указав в скрипте "Scenario Statistics", он вывел мне всё, что принадлежит этому пункту до "Total scenarios aborted", а не указывать имя каждой строки отдельно, которую мне нужно вывести?

Как это сделал я сейчас в переменной phrases:

#path to logfile with statistics test
file_name = r"/home/andrey/logfile.log"
var = []
#templates by which the script outputs information to another file
phrases = ["Scenario statistics",
       "Total scenarios attempted",
       "Total scenarios succeeded",
       "Total scenarios failed",
       "Total scenarios aborted" ]

with open(file_name) as f:
    f = f.readlines()

for line in f:
    for phrase in phrases:
        if phrase in line:
            var.append(line)
            break

#I make a line from the list to write to a file
myString = '__'.join(var)

output_file = open('/home/andrey/output.txt', 'w')
output_file.write(myString)

Я знаю, что это ужасный костыль, просто делаю только первые шаги в этом.

Источник: https://ru.stackoverflow.com/questions/726228/%D0%98%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D0%B7-%D0%BB%D0%BE%D0%B3-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0

Share

Тебе может это понравится...