张飞小拳拳 发表于 2021-3-13 15:38:49

文件

def juage(file1,file2):
    f1 = open(file1)
    f2 = open(file2)
    cnt = 0
    fact = []                            #请问这里的变量是一行还是一个遍历呢,我看源码上写的是line1 != line2   这里不太明白到底是以‘行’为遍历单位还是以每行中的每个字符为遍历单位呢,麻烦大神解惑
    for i1 in f1:
      i2 = f2.readline()
      cnt += 1
      if i1 != i2:
            fact.append(cnt)

    f1.close()
    f2.close()
    return fact

file1 = input('请输入第一个文件名:')
file2 = input('请输入第二个文件名:')
fact = juage(file1,file2)
length = len(fact)
if len(fact) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有%d处不同:'%length)
    for i in fact:
      print('第%d行不一样'%i)

yuedong 发表于 2021-3-13 16:03:36

for i in f1?
没试过,手边也没电脑,如果是f1.readlines()
就是按行

张飞小拳拳 发表于 2021-3-13 16:16:11

yuedong 发表于 2021-3-13 16:03
for i in f1?
没试过,手边也没电脑,如果是f1.readlines()
就是按行

我用 ‘i’ 命名程序能跑起来,个人理解这个变量命名只是名称,没有其他意义,如果是行的话那我理解了,多谢了{:5_109:}
页: [1]
查看完整版本: 文件