鱼C论坛

 找回密码
 立即注册
查看: 1333|回复: 6

输入两个文件名,显示它们两内容不同行的数量和位置

[复制链接]
发表于 2020-3-6 20:09:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
file_name1 = input('请输入需要比较的头一个文件名:')
file_name2 = input('请输入需要比较的另一个文件名:')
filename1=open('E:\\%s.txt'% file_name1)
filename2=open('E:\\%s.txt'% file_name2)
count1 = 0
count2 = 0
for each1 in filename1:
    count1+=1
for each2 in filename2:
    count2+=1
count = 1
sum = 0
ceshi = []
while True:
    if filename1.readline()!=filename2.readline():
        ceshi.append(count)
        sum+=1
    if count==count1 or count==count2:
        break
    count+=1
print('两个文件共有【%d】处不同:'% sum)
for i in ceshi:
    print('第%d行不一样'% i)
我没看出来哪里错了,求指教下
要是有更简洁的代码就更好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-6 21:06:28 | 显示全部楼层
for each1 in filename1: 此时已经读到文件尾了,再readline就没有内容了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 21:36:46 | 显示全部楼层
冬雪雪冬 发表于 2020-3-6 21:06
for each1 in filename1: 此时已经读到文件尾了,再readline就没有内容了

但是这个for each1 in filename1:
这个代码不是只读取它内容而已吗,难道这里已经将指针后移了吗
就是说for each1 in filename1:这个已经相当于一边读取一边readline了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 21:42:30 | 显示全部楼层
来mua一口 发表于 2020-3-6 21:36
但是这个for each1 in filename1:
这个代码不是只读取它内容而已吗,难道这里已经将指针后移了吗
就是 ...

你可以print一下each1验证一下鸭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 22:34:39 | 显示全部楼层
qiuyouzhi 发表于 2020-3-6 21:42
你可以print一下each1验证一下鸭

刚试了,的确内容为空,知道原理的话能说下吗,先谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 22:39:30 | 显示全部楼层
来mua一口 发表于 2020-3-6 22:34
刚试了,的确内容为空,知道原理的话能说下吗,先谢了

看循环里面的内容:
count+=1,也就是这个each只是单纯的读取一下,
每读取一次,count就加1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 22:46:54 | 显示全部楼层
qiuyouzhi 发表于 2020-3-6 22:39
看循环里面的内容:
count+=1,也就是这个each只是单纯的读取一下,
每读取一次,count就加1

懂了,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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