1. 程式人生 > 實用技巧 >20201214-4 檔案讀與寫詳解2

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行,copy500次? 寫程式碼的原則,避免重複程式碼,重複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-4f.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