鱼C论坛

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

[已解决]新手:关于整行读取文件里的内容

[复制链接]
发表于 2018-4-8 03:48:37 | 显示全部楼层 |阅读模式

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

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

x
各位大神,请教一个问题,在按照整行读取文件里的内容的时候, 用 file.readline() 和 for eachline in file 这两种方法效果是一样的吗?都可以达到从开始到最后按照整行去读取出文件每行的内容吗?

老师有段代码,是来比较文件1和文件2里每个相同位数的行的内容是否一样。
for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)
这里在for line1 in f1第一次循环的时候取出的是f1里的第一行内容,f2.readline()执行第一次的时候,也是读取了f2文件里第一行的内容,所以他这样写实现了每次f1和f2比较的时候,都是比较的相同位置的行的内容,对吧。


那如果这两个实现效果是一样的话,那我是否可以换成这样的代码呢,是不是也可以实现呢
while true:
     line1=f1.readline()
     line2=f2.readline()
     if line1 != line2:
           differ.append(count)
     else:
           continue
我这样写是不是也可以保证每次比较的时候,f1和f2比较的是同一行数的内容呢?
最佳答案
2018-4-8 11:13:25
HenryZhang 发表于 2018-4-8 10:46
再次感谢你的回答哈,不好意思哈,我这个新手还是有点蒙圈,我再问你一下哈,麻烦你了。

1. 打个比方 ...

1 是这个意思,如果中间某个文件多了一行,那么后面的匹配都会出问题
2 我可能表达的不够准确,前面说的其实是参考代码和你的代码都存在这个问题

你的代码和老师的代码可以认为没有什么区别,我只是指出可能存在的一个问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-8 08:23:47 From FishC Mobile | 显示全部楼层
你这样写要求两个文件的行数完全一致,如果某一行不同,那么后面的每一行都不同
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 10:01:26 | 显示全部楼层
BngThea 发表于 2018-4-8 08:23
你这样写要求两个文件的行数完全一致,如果某一行不同,那么后面的每一行都不同

谢谢你的回答哈,不好意思,我还是不太明白,为什么我这样写,如果比较到其中一行不同,为什么下面的每一行都会不同呢?下面的一行他们不都是同事read下面一行再比较吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-8 10:37:34 | 显示全部楼层
HenryZhang 发表于 2018-4-8 10:01
谢谢你的回答哈,不好意思,我还是不太明白,为什么我这样写,如果比较到其中一行不同,为什么下面的每一 ...

我的意思是如果某个文件多了一行,那么其下面的每一行都不匹配
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 10:46:08 | 显示全部楼层
BngThea 发表于 2018-4-8 10:37
我的意思是如果某个文件多了一行,那么其下面的每一行都不匹配

再次感谢你的回答哈,不好意思哈,我这个新手还是有点蒙圈,我再问你一下哈,麻烦你了。

1. 打个比方哈,如果一个文件9行,一个文件8行,那按照我那么写,是不是也是比较到第八行的时候,再往下比较,就会用一个文件的第9行和另一个的文件空值比较,前八行的比较没有问题吧。

2. 那按照老师那么写,如果一个文件9行,一个文件8行,不也是一样会出现上面的问题吗,我真的看不出来有什么不一样。不好意思哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-8 11:13:25 | 显示全部楼层    本楼为最佳答案   
HenryZhang 发表于 2018-4-8 10:46
再次感谢你的回答哈,不好意思哈,我这个新手还是有点蒙圈,我再问你一下哈,麻烦你了。

1. 打个比方 ...

1 是这个意思,如果中间某个文件多了一行,那么后面的匹配都会出问题
2 我可能表达的不够准确,前面说的其实是参考代码和你的代码都存在这个问题

你的代码和老师的代码可以认为没有什么区别,我只是指出可能存在的一个问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 14:17:58 | 显示全部楼层
BngThea 发表于 2018-4-8 11:13
1 是这个意思,如果中间某个文件多了一行,那么后面的匹配都会出问题
2 我可能表达的不够准确,前面说的 ...

非常感谢你的回答,太谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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