3216207773 发表于 2020-9-19 17:14:48

文件的比较

def compare(name1,name2):
    count=0
    each=[]
    j=open(name1)
    f=open(name2)
    for eachline1 in j:
      for eachline2 in f:
            count+=1
            if eachline1 != eachline2:
                each.append(count)
            else:
                continue
      continue
    print('共有',len(each),'处不同')
    for i in each:
      print('第',i,'行不同')

    j.close()
    f.close()
name1=input('第一个文件名:')
name2=input('第二个文件名:')
compare(name1,name2)

#为什么没能按照预想的那样运行?

sunrise085 发表于 2020-9-19 17:14:49

比较的时候不需要双层循环,一个文件用for循环遍历,一个直接用readline读
def compare(name1,name2):
    count=0
    each=[]
    j=open(name1)
    f=open(name2)
    for eachline1 in j:
      eachline2 = f.readline()
      count+=1
      if eachline1 != eachline2:
            each.append(count)

    print('共有',len(each),'处不同')
    for i in each:
      print('第',i,'行不同')

    j.close()
    f.close()
name1=input('第一个文件名:')
name2=input('第二个文件名:')
compare(name1,name2)

疾风怪盗 发表于 2020-9-19 17:19:20

你想要的预期是什么?
运行了下,
共有 3 处不同
第 2 行不同
第 3 行不同
第 4 行不同
这不是挺正常的么?

            else:
                continue
      continue
这三句,没意义,可以删
页: [1]
查看完整版本: 文件的比较