鱼C论坛

 找回密码
 立即注册
查看: 1319|回复: 2

[已解决]文件的比较

[复制链接]
发表于 2020-9-19 17:14:48 | 显示全部楼层 |阅读模式
1鱼币
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)
#为什么没能按照预想的那样运行?
最佳答案
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)

最佳答案

查看完整内容

比较的时候不需要双层循环,一个文件用for循环遍历,一个直接用readline读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-19 17:19:20 | 显示全部楼层
你想要的预期是什么?
运行了下,
共有 3 处不同
第 2 行不同
第 3 行不同
第 4 行不同
这不是挺正常的么?
            else:
                continue
        continue
这三句,没意义,可以删
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 14:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表