Bruin 发表于 2017-3-1 14:31:49

第29讲关于read()和readlines()

本帖最后由 Bruin 于 2017-3-1 14:34 编辑

def file_compare(file1, file2):
    f1 = open(file1)
    f2 = open(file2)
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量

    for line1 in f1:
      line2 = f2.readline()
      count += 1
      if line1 != line2:
            differ.append(count)


这是小甲鱼老师动动手第二题的一部分答案,for line1 in f1就是表示读取的一行吗?
我百度的read(),readlines(),readline()的区别, fh = open('c:\\autoexec.bat')
         forline infh.readlines():
         printline
这样表示的读取一行,这两种都对?

32269100 发表于 2017-3-1 14:37:39

这也是问题吗?完全可以自己去测试得到答案呀!

sunnychou 发表于 2017-3-1 16:18:01

for line1 in f1就是表示读取的一行吗,读取一行的是readline()函数,这个循环是在f1中,第二句才是读取一行,

xxpythonxx 发表于 2017-3-1 16:51:30

for line1 in f1
f1要是字符串,好像是一个字母一个字母读的。可以print line1 print line2看看结果是啥

莉子 发表于 2017-3-2 14:15:00

file是一个可迭代对象,只要是可迭代对象,都可以使用for语句来循环遍历file的元素。

2131479626 发表于 2017-3-8 07:22:55

shawnz 发表于 2020-3-11 23:06:38

这里我也不明白,遍历f1的应该是字符,直接和f2的line比较,怎么比呢?

陈尚涵 发表于 2020-3-12 12:14:18

没有readline()吧?read()是把它分解出来,回车是\n,要是想看到文章就用print(read(file...))就行了。readlines()是把read()的\n自动转换成回车

永恒的蓝色梦想 发表于 2020-3-12 12:23:59

陈尚涵 发表于 2020-3-12 12:14
没有readline()吧?read()是把它分解出来,回车是\n,要是想看到文章就用print(read(file...))就行了。read ...

没有readline()?

永恒的蓝色梦想 发表于 2020-3-12 12:25:16

shawnz 发表于 2020-3-11 23:06
这里我也不明白,遍历f1的应该是字符,直接和f2的line比较,怎么比呢?

遍历FILE对象得到的是一行(字符串),f2的line也是一行(字符串),怎么不能比呢

陈尚涵 发表于 2020-4-8 10:37:40

我现在知道了。read是读出来,换行是\n,readline是每行依次读,readlines是一次读完,每换行每一个列表,等于read(file).split("\n")

何璧 发表于 2021-7-25 18:02:55

我也没看明白,这里   
for i in range(int(line_num)):
      print(f.readline(), end= '')
是表示打印当前一行吗?.readline()没有参数是打印的什么?
另外请教.readline()这种函数在哪里查看讲解

sunyt 发表于 2021-9-11 15:36:56

{:5_90:}

傻眼貓咪 发表于 2021-9-11 15:40:59

{:5_91:}

NIJIADEDDIEJ 发表于 2021-12-11 14:40:34

{:5_102:}
页: [1]
查看完整版本: 第29讲关于read()和readlines()