20201214-4 檔案讀與寫詳解2
阿新 • • 發佈:2020-12-14
5-1如果只想列印前五行,怎麼辦?
5-4f.readline只適合讀小檔案,大檔案不合適,會佔用記憶體
如果讀大檔案怎麼辦?
迴圈一行,刪掉一行,記憶體中只儲存一行
f = open("yesterday",'r',encoding="utf-8") # 檔案控制代碼 print(f.readline()) print(f.readline()) print(f.readline()) print(f.readline()) print(f.readline())如果想讀500行,copy500次? 寫程式碼的原則,避免重複程式碼,重複5次,被開的節奏 5-2如果只想列印前五行,怎麼辦?
f = open("yesterday",'r',encoding="utf-8") # 檔案控制代碼 for i in range(5): print5-3現在想把檔案進行迴圈;每迴圈一次,列印一次,到第10行的時候,不列印(f.readline())
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())
# 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