使用python解析样本数据

时间:2018-07-12 19:50:01

标签: python python-2.7 list scripting pydictionary

我有以下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 个答案:

答案 0 :(得分:0)

假设您正在写入的文本文件可以使用类似以下格式的格式,但根据您设置行和值的方式进行更改。

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

不太确定如何设置脚本,但这只是一个主意。

答案 1 :(得分:-1)

使用字典存储表,键作为日期和ip_address的组合,值作为计数器。