鱼C论坛

 找回密码
 立即注册
查看: 1087|回复: 5

[已解决]29课后题比较两个文件不同并显示

[复制链接]
发表于 2018-4-6 17:30:17 | 显示全部楼层 |阅读模式

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

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

x
这是我自己写的一个:
f1=open(r'C:\Users\耀文酱\Desktop\something.txt','r+')
f2=open(r'C:\Users\耀文酱\Desktop\something2.txt','r+')
lines=len(f1.readlines())
n=0
f1.seek(0,0)
f2.seek(0,0)
import linecache
for i in range(lines):
    if linecache.getline('f1',i) != linecache.getline('f2',i):
        n+=1
        print('第 %d 行不一样' % i)
    else:
        continue
print('两个文件一共有 %d 处不同' % n)

运行了总是说0处不同,按说应该是2处啊,有没有人能够指导一下
最佳答案
2018-4-6 18:09:15
linecache的写法不对,ta它是直接用文件名,而不是先用open打开。
  1. import linecache
  2. n = 0
  3. list1 = linecache.getlines('文件名1')
  4. list2 = linecache.getlines('文件名2')
  5. for i, (each1, each2) in enumerate(zip(list1, list2)):
  6.     if each1 != each2:
  7.         n+=1
  8.         print('第 %d 行不一样' %( i + 1))
  9. print('两个文件一共有 %d 处不同' % n)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-6 18:04:06 | 显示全部楼层
linecache.getline()两个都是空,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 18:09:15 | 显示全部楼层    本楼为最佳答案   
linecache的写法不对,ta它是直接用文件名,而不是先用open打开。
  1. import linecache
  2. n = 0
  3. list1 = linecache.getlines('文件名1')
  4. list2 = linecache.getlines('文件名2')
  5. for i, (each1, each2) in enumerate(zip(list1, list2)):
  6.     if each1 != each2:
  7.         n+=1
  8.         print('第 %d 行不一样' %( i + 1))
  9. print('两个文件一共有 %d 处不同' % n)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 18:12:18 | 显示全部楼层
getline()传入的是文件名不是文件对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 19:19:14 | 显示全部楼层
塔利班 发表于 2018-4-6 18:04
linecache.getline()两个都是空,

改成空了显示错误啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 19:21:07 | 显示全部楼层
塔利班 发表于 2018-4-6 18:12
getline()传入的是文件名不是文件对象

谢谢老哥再次回答我的问题
问一下如何判断需要传入的是文件名还是文件对象?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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