20201214-4 文件读与写详解2

5-1 如果只想打印前五行,怎么办?

f = open("yesterday",'r',encoding="utf-8")  # 文件句柄print(f.readline())print(f.readline())print(f.readline())print(f.readline())print(f.readline())

如果 想读 500 行, copy 500 次?

 

写代码的原则,避免重复代码,重复 5 次,被开的节奏

 

5-2 如果只想打印前五行,怎么办?

f = open("yesterday",'r',encoding="utf-8")  # 文件句柄for i in range(5):print(f.readline())

 

5-3 现在想把 文件进行 循环;每循环一次,打印一次,到第 10 行的时候,不打印

f = open("yesterday",'r',encoding="utf-8")  # 文件句柄print(f.readline())

---> 结果是一个列表,每行是一个元素

 

5-3-1 所以 -->

f = open("yesterday",'r',encoding="utf-8")  # 文件句柄for line in f.readlines():print(line)

# 有空行,是因为每个后面,默认有 \n

 

5-3-2 如果不想有空行,可以用 strip() 去掉

f = open("yesterday",'r',encoding="utf-8")  # 文件句柄for line in f.readlines():print(line.strip())# 第 10 行 不打印 怎么写?# low loopf = open("yesterday",'r',encoding="utf-8")  # 文件句柄for index,line in enumerate(f.readlines()):if index == 9:print('----- 我是分割线 -----')continueprint(line.strip())

 

5-4 f.readline 只适合读小文件,大文件不合适,会占用内存

如果读大文件怎么办?

循环一行,删掉一行,内存中只保存一行

# high bigefor line in f:print(line)# 这个效率是最高的,因为 f 已经被变成了 迭代器# 现在他不是列表了,所以,需要弄一个计数器。count = 0for line in f:if count == 9:print('----我是分割线----')
        count += 1continueprint(line)
    count += 1

    

 


上一篇:20201216-1 文件读与写详解3


下一篇:四则运算计算器——计应191西——计应191西4组毛绍冲