我有一个学校作业:"该程序应提示用户输入两个文本文件的名称,并比较两个文件的内容以查看它们是否相同。如果是,程序应该简单地向控制台输出"是"。如果不是,脚本应该输出"否",然后是每个文件中彼此不同的第一行。输入循环应该读取并比较每个文件中的行。一旦找到一对不同的线,循环就会中断">
文本文件被提供给我们;下面的链接包含用于测试的文本。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)