Python:读取文本文件中的行并计算直接在下面的行相同的实例

时间:2017-06-24 13:50:39

标签: python string python-2.7 counter

我是Python新手,正在寻求帮助。 我有一个大文本文件,我想搜索并计算一行与其上面的行相同的次数。这是我到目前为止所拥有的。

f = open('test.txt')

counter = 0

for line in f:
    nextline = f.next()

    if line == nextline:
        counter = counter + 1
print counter
f.close()

这将分组并比较第一行和第二行,然后是第三行和第四行,依此类推。如何调整程序以比较第一行和第二行,然后第二行与第三行,第三行与第四行等。 任何帮助,将不胜感激。 感谢。

4 个答案:

答案 0 :(得分:2)

保留PREVIOUS行的引用,如下所示:

f = open('test.txt') 

counter = 0 
prevLine = None

for line in f: 
    if line == prevLine: 
        counter = counter + 1
    prevLine = line 

print counter 
f.close()

答案 1 :(得分:0)

通过致电f.next(),您已经进入下一行。但是,您可以使用存储前一行的变量old_line。每次在循环结束时,您都会设置old_line以引用line。此外,您最初将old_line设置为None,以确保不计算第一行。

counter = 0
with open('test.txt') as f:
    old_line = None
    for line in f:
        if line == old_line:
            counter += 1
        old_line = line
print counter

答案 2 :(得分:0)

我认为应该有一个奇怪的解决方案......而且你在这里

from functools import reduce #if you are useing Python 3+

count = 0
def compare_string(prev, new):
    global count
    if prev == new:
        count += 1
    return new

with open('test.txt') as f:
    reduce(compare_sring, f)

答案 3 :(得分:0)

你可以试试这个:

on_message