尝试比较 2 个文本文件,出现" IndexError: list index out of range"错误



我有一个学校作业:"该程序应提示用户输入两个文本文件的名称,并比较两个文件的内容以查看它们是否相同。如果是,程序应该简单地向控制台输出"是"。如果不是,脚本应该输出"否",然后是每个文件中彼此不同的第一行。输入循环应该读取并比较每个文件中的行。一旦找到一对不同的线,循环就会中断">

文本文件被提供给我们;下面的链接包含用于测试的文本。Text1和Text2是同一个文件,Text3略有不同">

我在运行程序时遇到一个错误,说如果f1lines[lineCount]!=f2lines[lineCount]:

IndexError:列出超出范围的索引

我做错了什么?

file1 = input("Enter name of first file to compare: ")
file2 = input("Enter name of second file to compare: ")
f1 = open(file1, 'r')
f2 = open(file2, 'r')
f1lines = f1.readlines()
f1.close()
f2lines = f2.readlines()
f2.close()
def compare_lines():
lineCount = 0
while lineCount != len(f1lines):
if f1lines[lineCount] == f2lines[lineCount]:
lineCount += 1
if lineCount == len(f1lines):
print("Yes")
if f1lines[lineCount] != f2lines[lineCount]:
print("No")
print(f2lines[lineCount])

如果要删除

elif f1lines[lineCount] != f2lines[lineCount]:
print("No")
print(f2lines[lineCount])
break

不需要写这么多代码,使用这些代码会容易得多。你可以试试

file1 = input("Enter name of first file to compare: ")
file2 = input("Enter name of second file to compare: ")
f1 = open(file1, 'r')
f2 = open(file2, 'r')
f1lines = f1.readlines()
f1.close()
f2lines = f2.readlines()
f2.close()
if len(f1lines) == len(f2lines):
print(Yes)
else:
print("No)

最新更新