Python逐行讀取文件內(nèi)容的方法總結(jié)
Python四種逐行讀取文件內(nèi)容的方法
下面四種Python逐行讀取文件內(nèi)容的方法, 分析了各種方法的優(yōu)缺點(diǎn)及應(yīng)用場(chǎng)景,以下代碼在python3中測(cè)試通過(guò), python2中運(yùn)行部分代碼已注釋,稍加修改即可。
方法一:readline函數(shù)
# -*- coding: UTF-8 -*-
f = open("/pythontab/code.txt") # 返回一個(gè)文件對(duì)象
line = f.readline() # 調(diào)用文件的 readline()方法
while line:
# print line, # 在 Python 2中,后面跟 ',' 將忽略換行符
print(line, end='') # 在 Python 3中使用
line = f.readline()
f.close()
優(yōu)點(diǎn):節(jié)省內(nèi)存,不需要一次性把文件內(nèi)容放入內(nèi)存中。
缺點(diǎn):速度相對(duì)較慢。
方法二:一次讀取多行數(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)
可以直接對(duì)一個(gè)file對(duì)象使用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)
使用簡(jiǎn)單, 但速度較慢
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
Python 超時(shí)請(qǐng)求或計(jì)算的處理方案
這篇文章主要介紹了Python 超時(shí)請(qǐng)求或計(jì)算的處理方案,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06
使用Python的Flask框架實(shí)現(xiàn)視頻的流媒體傳輸
這篇文章主要介紹了使用Python的Flask框架實(shí)現(xiàn)視頻的流媒體傳輸,包括從攝像機(jī)獲取幀到web瀏覽器的數(shù)字流傳輸,需要的朋友可以參考下2015-03-03
python mongo 向數(shù)據(jù)中的數(shù)組類型新增數(shù)據(jù)操作
這篇文章主要介紹了python mongo 向數(shù)據(jù)中的數(shù)組類型新增數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
如何通過(guò)python實(shí)現(xiàn)全排列
這篇文章主要介紹了如何通過(guò)python實(shí)現(xiàn)全排列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
pydev debugger: process 10341 is co
這篇文章主要介紹了pydev debugger: process 10341 is connecting無(wú)法debu的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

