鱼C论坛

 找回密码
 立即注册
查看: 1494|回复: 3

python第029课课后题

[复制链接]
发表于 2016-12-6 08:23:29 | 显示全部楼层 |阅读模式
1鱼币
pythdef file_compare(file1,file2):
    f1 = open(file1)
    f2 = open(file2)
    count = 0
    differ = []
    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)
    f1.close()
    f2.close()
    return differ
file1 = input('请输入需要比较的头一个文件夹:')
file2 = input('请输入需要比较的另一个文件名:')
differ = file_compare(file1,file2)
if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:' % len(differ))
    for each in differ:
        print('第%d行不一样' % each)




这段代码中的  for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)这段不是很懂请大神逐步解答下,主要是这个count,还有这个for循环会一直循环吗

最佳答案

查看完整内容

for line1 in f1:这个for循环 只是遍历f1文件中的每一行,每遍历一行count就就加一,这样就能准确的查看到具体是哪一行和f2不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-6 08:23:30 | 显示全部楼层
for line1 in f1:这个for循环 只是遍历f1文件中的每一行,每遍历一行count就就加一,这样就能准确的查看到具体是哪一行和f2不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-8 15:50:54 | 显示全部楼层
小茗同学 发表于 2016-12-6 08:23
for line1 in f1:这个for循环 只是遍历f1文件中的每一行,每遍历一行count就就加一,这样就能准确的查看到 ...

【line2 = f2.readline()】不是只能返回一行字符吗?是不是 【line2 = f2.readline()】也会随for循环进行叠加?第一次返回第一行,第二次返回第二行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-8 15:54:06 | 显示全部楼层
之前将readline达成了readlines,发现返回的结果是不一样的

f1 = open("something0.txt")
>>> a = f1.readline
>>> a = f1.readline()
>>> print(a)
123

>>> a = f1.readlines()
>>> print(a)
['456\n', '789\n', 'abc\n', 'def']
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 05:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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