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 loop f = open("yesterday",'r',encoding="utf-8") # 文件句柄 for index,line in enumerate(f.readlines()): if index == 9: print('----- 我是分割线 -----') continue print(line.strip())
5-4 f.readline 只适合读小文件,大文件不合适,会占用内存 如果读大文件怎么办? 循环一行,删掉一行,内存中只保存一行
# high bige for line in f: print(line) # 这个效率是最高的,因为 f 已经被变成了 迭代器 # 现在他不是列表了,所以,需要弄一个计数器。 count = 0 for line in f: if count == 9: print('----我是分割线----') count += 1 continue print(line) count += 1