下面是四種Python逐行讀取檔案內容的方法, 並分析了各種方法的優缺點及應用場景,以下程式碼在python3中測試透過, python2中執行部分程式碼已註釋,稍加修改即可。
方法一:readline函式
#-*- coding: UTF-8 -*- f = open("/pythontab/code.txt") # 返回一個檔案物件 line = f.readline() # 呼叫檔案的 readline()方法 while line: #print line, # 在 Python 2中,後面跟 ',' 將忽略換行符 print(line, end = '') # 在 Python 3中使用 line = f.readline() f.close()
優點:節省記憶體,不需要一次性把檔案內容放入記憶體中
缺點:速度相對較慢
方法二:一次讀取多行資料
程式碼如下:
#-*- coding: UTF-8 -*- f = open("/pythontab/code.txt") while 1: lines = f.readlines(10000) if not lines: break for line in lines: print(line) f.close()
一次性讀取多行,可以提升讀取速度,但記憶體使用稍大, 可根據情況調整一次讀取的行數
方法三:直接for迴圈
在Python 2.2以後,我們可以直接對一個file物件使用for迴圈讀每行資料
程式碼如下:
#-*- coding: UTF-8 -*- for line in open("/pythontab/code.txt"): #print line, #python2 用法 print(line)
方法四:使用fileinput模組
import fileinput for line in fileinput.input("/pythontab/code.txt"): print(line)
使用簡單, 但速度較慢