我试图创建一个函数,它打开一个文件(filename
),打印每一行与前一行不同的文本(第一行总是被写入)。在输入文件中,每个输出行都应该以其行号作为前缀。你知道吗
我想出了以下方法,不管文本的最后一行是否重复,它都会一直打印出来:
def squeeze(filename):
file = open(filename, 'r')
prevline = ''
line_num = 0
for line in file:
line_num = line_num + 1
if line != prevline:
print ('%3d - %s'%(line_num, line))
prevline = line
filename = 'Test.txt'
squeeze(filename)
我似乎不知道我的代码中的缺陷是在哪里和什么来修复这个问题?你知道吗
谢谢大家,都很有帮助,用勾了一个!你知道吗
对于以下文件,您的代码运行良好:
输出为:
因此,我建议对for循环进行两个修改:
在完成一个循环时,请尝试使用列表存储行,然后在下一个循环中打印之前,请检查该行是否已存在于列表中。你知道吗
每一行都应该以换行符
\n
或\r\n
结尾。所以你的最后一行没有。你知道吗您可以使用
str.strip()
删除它。你知道吗相关问题 更多 >
编程相关推荐