比较文件python中的值

时间:2011-12-01 14:24:13

标签: python

以下是txt文件中的数据示例:

1322484979.322313000    85.24.168.19    QQlb-j7itDQ
1322484981.070116000    83.233.56.133   Ne8Bb1d5oyc
1322484981.128791000    83.233.56.133   Ne8Bb1d5oyc
1322484981.431075000    83.233.56.133   Ne8Bb1d5oyc
1322484985.210652000    83.233.57.136   QWUiCAE4E7U

第一列是时间戳,第二列是IP地址,第三列是一些哈希值。

我想检查一下,如果两个或多个连续的行具有相同的IP地址和哈希值,我需要使用重复行的最后一个时间戳来减去重复行的第一个时间戳,在这种情况下,是132248981.431075000- 1322484981.070116000

如果结果小于5,我只保留文件中的第一行(最早)。

如果结果超过5,我会保留第一行和最后一行,删除它们之间的行

因为我是python的新手,这个问题对我来说有点复杂。我不知道需要什么样的功能,任何人都可以帮一下吗?

1 个答案:

答案 0 :(得分:3)

从基本的角度来看,它看起来像这样:

data = open("data.txt", "r")

last_time = 0.0
last_ip = None
last_hash = None

for line in data:
        timestamp, ip, hash_value = line.split()
        if ip==last_ip and hash_value==last_hash and float(timestamp) - float(last_time) < 5.0:
                print "Remove ", line
        else:
                print "Keep ", line
        last_time, last_ip, last_hash = timestamp, ip, hash_value