Python四種逐行讀取檔案內容的方法

pythontab發表於2017-12-13

下面是四種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)

使用簡單, 但速度較慢








相關文章