Python打開與讀取文件操作的常用方法
打開與讀取文件
在 Python 中,內(nèi)置了文件(file) 對(duì)象。 在使用文件對(duì)象時(shí),首先需要通過內(nèi)置的 open0 方法創(chuàng)建一個(gè)文件對(duì)象,然后通過該對(duì)象提供的方法進(jìn)行基本的文件操作。
open() 函數(shù)的語法格式如下:
file = open(filename[,mode[,buffering]])
其中參數(shù) fle為被創(chuàng)建的文件對(duì)象:
- flename 為要?jiǎng)?chuàng)建或打開文件的文件名稱,需要使用單引號(hào)或雙引號(hào)括起來。 如果要打開的文件和當(dāng)前文件在同一個(gè)目錄下,那么直接寫文件名即可,否則需要指定完整路徑
- mode 為可選參數(shù),用于指定文件的打開模式,默認(rèn)的打開模式為只讀(即r); buffering 為可選參數(shù),用于指定讀寫文件的緩沖模式,值為0表示不緩存,值為1表示緩存,如果值大于1,則表示緩沖區(qū)的大小。默認(rèn)值為緩存模式。

在 Python 中打開文件后,可以讀取文件中的內(nèi)容。 文件對(duì)象提供了 readline()方法用于每次讀取行數(shù)據(jù)。 readline()方法的語法格式如下:
file.readline()
打開文件后,需要及時(shí)關(guān)閉,以免對(duì)文件造成不必要的破壞。 關(guān)閉文件可以使用文件對(duì)象的close()方法實(shí)現(xiàn)。 close()方法的語法格式如下:
file.close()
文件操作的常用方法
文件讀取操作通常有三種方法:
- read() 方法表示讀取全部或部分內(nèi)容;
- readline()方法表示逐行讀取;
- readlincs()方法表示讀取所有行內(nèi)容。
下面重點(diǎn)介紹 read()方法和readlines()方法。
read()方法
讀取文件的全部或部分內(nèi)容,對(duì)于連續(xù)的面向行的讀取,則不使用該方法。語法格式如下:
fp.read([size])
其中,size 為可選參數(shù),用于指定要讀取文件內(nèi)容的字符數(shù)(所有字符均按一個(gè)計(jì)算,包括漢字),如read(8),表示讀取前8個(gè)字符。如果省略,則返回整個(gè)文件的內(nèi)容。
注意:使用 read()方法讀取文件內(nèi)容時(shí),如果文件大于可用內(nèi)存,則不能實(shí)現(xiàn)文件的讀取,而是返回空字符串。
readlines()方法
返回一個(gè)列表,列表中每個(gè)元素為文件中的一行數(shù)據(jù),語法如下:
file.readlines()
除了進(jìn)行文件讀取操作,有時(shí)還需要獲取或移動(dòng)文件指針位置的操作,常用的操作方法有 tell()方法和 seek()方法。
tell()方法
返回一個(gè)整數(shù),表示文件指針的當(dāng)前位置,即在二進(jìn)制模式下距離文件頭的字節(jié)數(shù),語法如下:
file.tell()
使用 tell()方法返回的位置與為 read() 方法指定的 size 參數(shù)不同。
tell()方法返回的不是字符的個(gè)數(shù)而是字節(jié)數(shù),其中漢字所占的字節(jié)數(shù)根據(jù)其采用的編碼有所不同,如果采用GBK 編碼,則一個(gè)漢字按兩個(gè)字節(jié)計(jì)算;如果采用 UTF-8 編碼,則一個(gè)漢字按3 個(gè)字節(jié)計(jì)算。
scck()方法
將文件的指針移動(dòng)到新的位置,位置通過字節(jié)數(shù)進(jìn)行指定。這里的數(shù)值與 tell() 方法返回的數(shù)值的計(jì)算方法一致。語法如下:
file.seek(offset[ ,whence])
參數(shù)說明:
- file:表示已經(jīng)打開的文件對(duì)象。
- offset:用于指定移動(dòng)的字符個(gè)數(shù),其具體位置與 whence 有關(guān)
- whence: 用于指定從什么位置開始計(jì)算。值為0表示從文件頭開始計(jì)算,1表示從當(dāng)前位置開始計(jì)算,2表示從文件尾開始計(jì)算,默認(rèn)為 0。
到此這篇關(guān)于Python打開與讀取文件操作的常用方法的文章就介紹到這了,更多相關(guān)Python常用文件操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼
這篇文章主要介紹了Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解
這篇文章主要介紹了keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Pandas數(shù)據(jù)清洗的8大核心技巧完整指南
數(shù)據(jù)清洗是數(shù)據(jù)分析中耗時(shí)最長(zhǎng)的環(huán)節(jié),據(jù)統(tǒng)計(jì)占整個(gè)數(shù)據(jù)分析工作量的60%-80%,本文系統(tǒng)整理了pandas數(shù)據(jù)清洗的8大核心技巧,希望可以幫助讀者快速掌握相關(guān)技能并應(yīng)用于實(shí)際工作中2026-04-04
pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
Pandas實(shí)現(xiàn)轉(zhuǎn)換產(chǎn)生新列的項(xiàng)目實(shí)踐
本文主要介紹了Pandas實(shí)現(xiàn)轉(zhuǎn)換產(chǎn)生新列,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
解決Pycharm內(nèi)存一直升高卡死,反應(yīng)慢,CPU占用高問題
文章主要介紹了Pycharm使用過程中出現(xiàn)卡頓、CPU占用高等問題,常規(guī)優(yōu)化無效后,通過恢復(fù)默認(rèn)設(shè)置有效解決了問題,并建議導(dǎo)出配置備份,重裝插件即可,項(xiàng)目和依賴不受影響2025-10-10
Django中反向生成models.py的實(shí)例講解
今天小編就為大家分享一篇Django中反向生成models.py的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python 簡(jiǎn)單計(jì)算要求形狀面積的實(shí)例
今天小編就為大家分享一篇Python 簡(jiǎn)單計(jì)算要求形狀面積的實(shí)例,具有很好的參考價(jià)值2020-01-01
Python采集圖片數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了Python采集圖片數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04

