Python讀取文件的三種方式總結(jié)
一、前言
Python的文本處理是經(jīng)常碰到的一個(gè)問題,非常重要的,所以才決定重新寫一期關(guān)于文件讀取的文章。這里有3個(gè)Python讀取文本文件內(nèi)容的方法介紹給大家:
- read()
- readline()
- readlines()
這三種方法各有利弊,下面逐一介紹其使用方法和利弊。
二、讀取文件的三種方法
read()
該方法一次性讀取整個(gè)文件的內(nèi)容,并將內(nèi)容保存在一個(gè)字符串對(duì)象中。因?yàn)槭且淮涡宰x取,所以適用于文件較小的情況。這種方法返回的是一個(gè)字符串對(duì)象。
優(yōu)點(diǎn):方便簡(jiǎn)單,一次性讀取到一個(gè)大字符串中,速度快;
缺點(diǎn):文件過大的時(shí)候,占用內(nèi)存也會(huì)很大,不適宜讀取大文件;
示例:
# coding:utf-8
if __name__ == "__main__":
# open
f = open("example.txt",encoding='utf8')
# read
# f = open("example.txt",encoding='utf8')
lines = f.read()
print(lines)
# close
f.close()也可以用with,如下:
# coding:utf-8
if __name__ == "__main__":
with open("example.txt",encoding='utf8') as f:
lines = f.read()
print(lines)輸出:
Nothing could be more wonderful!
沒有比這更讓人高興的了!
readline()
該方法每次讀取一行內(nèi)容,并返回一個(gè)字符串對(duì)象。由于是逐行讀取,所以適用于大文件。
- 優(yōu)點(diǎn):逐行讀取,占用內(nèi)存小,適合讀取大文件;
- 缺點(diǎn):逐行讀取,速度相對(duì)較慢;
示例:
# coding:utf-8
if __name__ == "__main__":
# open
f = open("example.txt",encoding='utf8')
# read
line = f.readline()
while line:
print(line,end="")
line = f.readline()
# close
f.close()也可以用with,如下:
# coding:utf-8
if __name__ == "__main__":
with open("example.txt",encoding='utf8') as f:
line = f.readline()
while line:
print(line,end="")
line = f.readline()輸出:
Nothing could be more wonderful!
沒有比這更讓人高興的了!
readlines()
該方法讀取整個(gè)文件的所有行,并將每行內(nèi)容保存在一個(gè)列表(list)變量中。由于是一次性讀取整個(gè)文件,所以適用于文件較小的情況。
優(yōu)點(diǎn):一次性讀取文本內(nèi)容,速度較快;
缺點(diǎn):文件過大的時(shí)候,占用內(nèi)存也會(huì)很大,不適宜讀取大文件;
示例:
# coding:utf-8
if __name__ == "__main__":
# open
f = open("example.txt",encoding='utf8')
# read
lines = f.readlines()
for line in lines:
print(line,end="")
# close
f.close()也可以用with,如下:
# coding:utf-8
if __name__ == "__main__":
with open("example.txt",encoding='utf8') as f:
lines = f.readlines()
for line in lines:
print(line,end="")輸出:
Nothing could be more wonderful!
沒有比這更讓人高興的了!
三、小結(jié)
完整語法:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
間接語法(常用):
open(file, mode='r', encoding=None)
知識(shí)加油站:關(guān)于權(quán)限代碼mode的知識(shí),看過我之前博客的小伙伴應(yīng)該都有所了解了,不清楚的小伙伴可以看我的另外一篇博客《python設(shè)置文件只讀與取消文件只讀》,這里就不再重復(fù)贅述了。
因?yàn)榱?xí)慣了open,close,所以特意拎出來一下,一定要成雙成對(duì)呀,當(dāng)然您也可以用with。
| 序號(hào) | 方法 | 說明 |
|---|---|---|
| 1 | open() | 打開文件,獲取文件對(duì)象io.TextIOWrapper |
| 2 | close() | 關(guān)閉對(duì)象,這個(gè)操作一定要做,否則會(huì)造成系統(tǒng)資源消耗 |
三個(gè)讀文件的方法:
| 序號(hào) | 方法 | 說明 |
|---|---|---|
| 1 | read() | 讀取文件所有內(nèi)容,加載到內(nèi)存中 ;此方法適用于小文件操作 |
| 2 | readline() | 讀取當(dāng)前文件指針中的一行內(nèi)容,加載到內(nèi)存中;此方法適用于大文件操作 |
| 3 | readlines() | 將制定內(nèi)容寫入到列表(list)中,此方法適用于小文件操作 |
最后,值得指出的一點(diǎn)是,Python不依賴底層操作系統(tǒng)的文本文件概念,所有的處理都是由Python本身完成的,因此與平臺(tái)無關(guān)。
到此這篇關(guān)于Python讀取文件的三種方式總結(jié)的文章就介紹到這了,更多相關(guān)Python讀取文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何計(jì)算語句執(zhí)行時(shí)間
這篇文章主要介紹了Python如何計(jì)算語句執(zhí)行時(shí)間,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
利用Python中unittest實(shí)現(xiàn)簡(jiǎn)單的單元測(cè)試實(shí)例詳解
如果項(xiàng)目復(fù)雜,進(jìn)行單元測(cè)試是保證降低出錯(cuò)率的好方法,Python提供的unittest可以很方便的實(shí)現(xiàn)單元測(cè)試,從而可以替換掉繁瑣雜亂的main函數(shù)測(cè)試的方法,將測(cè)試用例、測(cè)試方法進(jìn)行統(tǒng)一的管理和維護(hù)。本文主要介紹了利用Python中unittest實(shí)現(xiàn)簡(jiǎn)單的單元測(cè)試。2017-01-01
Python Opencv中基礎(chǔ)的知識(shí)點(diǎn)
這篇文章主要介紹了Python Opencv中基礎(chǔ)的知識(shí)點(diǎn),主要包括創(chuàng)建窗口、保存圖片、采集視頻、鼠標(biāo)控制的代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Pandas之drop_duplicates:去除重復(fù)項(xiàng)方法
下面小編就為大家分享一篇Pandas之drop_duplicates:去除重復(fù)項(xiàng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python環(huán)境的報(bào)錯(cuò)解決方法
這篇文章主要為大家介紹了python環(huán)境的報(bào)錯(cuò)解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
JupyterNotebook 輸出窗口的顯示效果調(diào)整方法
這篇文章主要介紹了JupyterNotebook 輸出窗口的顯示效果調(diào)整方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

