logo
Python四種逐行讀取文件內(nèi)容的方法
下面四種Python逐行讀取文件內(nèi)容的方法, 分析了各種方法的優(yōu)缺點及應用場景子寓,以下代碼在python3中測試通過, python2中運行部分代碼已注釋毅访,稍加修改即可白群。
方法一:readline函數(shù)
# -*- coding: UTF-8 -*-
f = open("/pythontab/code.txt") # 返回一個文件對象
line = f.readline() # 調(diào)用文件的 readline()方法
while line:
# print line, # 在 Python 2中,后面跟 ',' 將忽略換行符
print(line, end='') # 在 Python 3中使用
line = f.readline()
f.close()
優(yōu)點:節(jié)省內(nèi)存签钩,不需要一次性把文件內(nèi)容放入內(nèi)存中掏呼。
缺點:速度相對較慢。
方法二:一次讀取多行數(shù)據(jù)
代碼如下:
# -*- 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()
一次性讀取多行铅檩,可以提升讀取速度憎夷,但內(nèi)存使用稍大, 可根據(jù)情況調(diào)整一次讀取的行數(shù)
方法三:直接for循環(huán)
可以直接對一個file對象使用for循環(huán)讀每行數(shù)據(jù)昧旨,代碼如下:
# -*- 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)
使用簡單拾给, 但速度較慢