关于f.readline() 的提问
for line1 in f1:line2 =f2.readline()
total +=1
if line1 != line2:
count.append(total)
这个里面的f2.readline()中是可以每次读取一行么?怎么实现的呢 当然,就是依次读一行 BngThea 发表于 2018-2-5 15:30
当然,就是依次读一行
怎么循环读到f2的末尾的呢 ZCYDHHX 发表于 2018-2-5 15:33
怎么循环读到f2的末尾的呢
遇到文件的EOF自然就结束了 BngThea 发表于 2018-2-5 15:35
遇到文件的EOF自然就结束了
什么是EOF?没有for循环,怎么就会一行读到下一行呢 EOF(End of File)是表示文件读取的结束,readline读取到文件最后一行后会自动产生EOF,使它不在往下读取。
在你给的代码中,循环次数是根据f1中内容行数决定的,之所以可以直接用for循环对文件使用,是因为for循环支持迭代,而文件内部存在迭代协议,协议内容就是读取文件内容一样(即readline)
为什么会一行读到下一行是因为内部存在一个位置指示器,每次读取一行指示器就指向下一行
以上,如果有问题欢迎指正{:10_256:} ZCYDHHX 发表于 2018-2-5 15:37
什么是EOF?没有for循环,怎么就会一行读到下一行呢
eof:文件结尾指标
你的代码中通过line1的循环进行的依次对f的每行读取操作 jkopp 发表于 2018-2-5 15:55
EOF(End of File)是表示文件读取的结束,readline读取到文件最后一行后会自动产生EOF,使它不在往下读取 ...
可是我的for是对f1循环啊 BngThea 发表于 2018-2-5 16:01
eof:文件结尾指标
你的代码中通过line1的循环进行的依次对f的每行读取操作
我的for是对f1循环啊,对f2有什么用? ZCYDHHX 发表于 2018-2-5 17:41
我的for是对f1循环啊,对f2有什么用?
因为你的语句放在循环体内,每次循环都会执行一次 for line1 in f1: #这里是对f1循环,每次循环读取f1中内容的一行
line2 =f2.readline() #这里是对读取f2的一行
total +=1 #这里是计行数
if line1 != line2: #这里是判断f1的一行与f2的同一行内容是否相同
count.append(total) #如果内容不同就把行数加入到count列表中
这是你给的代码的每行的意义
每次循环做的事情有
读取f1的一行
读取f2的一行
确定行数
判断f1的这行与f2的这行内容是否相同,不相同则记录下行数
页:
[1]