我是Python新手,正在寻求帮助。 我有一个大文本文件,我想搜索并计算一行与其上面的行相同的次数。这是我到目前为止所拥有的。
f = open('test.txt')
counter = 0
for line in f:
nextline = f.next()
if line == nextline:
counter = counter + 1
print counter
f.close()
这将分组并比较第一行和第二行,然后是第三行和第四行,依此类推。如何调整程序以比较第一行和第二行,然后第二行与第三行,第三行与第四行等。 任何帮助,将不胜感激。 感谢。
答案 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