Разбор примеров данных с использованием Python
У меня есть следующие данные test.txt, и я хочу проверить вхождение каждого состояния и показать его как итоговый вывод. Я могу подсчитать, сколько раз какое состояние произошло, используя следующую логику
for line in file:
if 'success' in line: count+=1
но я не могу добавить столбец и добавить его в конец, как мой вывод. Любая помощь будет высоко оценена.
Sample Input
-------------------------
11/11/2015 9.9.9.9 30s success
11/11/2015 9.9.9.8 30s stuck
11/11/2015 9.9.9.9 30s Sync
11/11/2015 9.9.9.9 30s success
11/12/2015 9.9.9.9 30s success
11/12/2015 9.9.9.9 30s stuck
11/12/2015 9.9.9.9 30s stuck
11/12/2015 9.9.9.9 30s success
11/12/2015 9.9.9.8 30s success
11/12/2015 9.9.9.9 30s success
11/12/2015 9.9.9.9 30s stuck
11/12/2015 9.9.9.9 30s success
11/12/2015 9.9.9.9 30s Sync
11/12/2015 9.9.9.9 30s Sync
--------------------Output I want -------------------------
11/11/2015 9.9.9.9 success 2
11/11/2015 9.9.9.8 stuck 1
11/11/2015 9.9.9.9 Sync 1
11/12/2015 9.9.9.9 success 4
11/12/2015 9.9.9.9 stuck 3
11/12/2015 9.9.9.9 Sync 2
11/12/2015 9.9.9.8 success 1
2 ответа
Предполагая, что это текстовый файл, который вы пишете, вы можете использовать что-то вроде следующего формата, но измените его в зависимости от того, как настроены ваша строка и значение.
with open('output.txt','w') as f:
line = 'something'
value = 2
f.write(line + str(value))
Это должно дать вам выход 'something2'
Удалить дубликаты
for line in lines:
read = []
if line not in read:
read.append(line)
do something with it
else:
add current count to previous values
Не слишком уверен, как у вас настроен скрипт, но это всего лишь идея.
Используйте словарь для хранения таблицы, ключ в качестве комбинации даты и ip_address, значение в качестве счетчика.