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)文章
pandas中的ExcelWriter和ExcelFile的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas中的ExcelWriter和ExcelFile的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04解決python3.6 右鍵沒有 Edit with IDLE的問題
這篇文章主要介紹了解決python3.6 右鍵沒有 Edit with IDLE的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Pandas計(jì)算元素的數(shù)量和頻率的方法(出現(xiàn)的次數(shù))
本文主要介紹了Pandas計(jì)算元素的數(shù)量和頻率的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python 日期的轉(zhuǎn)換及計(jì)算的具體使用詳解
這篇文章主要介紹了Python 日期的轉(zhuǎn)換及計(jì)算的具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01利用PyQt5模擬實(shí)現(xiàn)網(wǎng)頁(yè)鼠標(biāo)移動(dòng)特效
不知道大家有沒有發(fā)現(xiàn),博客園有些博客左側(cè)會(huì)有鼠標(biāo)移動(dòng)特效。通過移動(dòng)鼠標(biāo),會(huì)形成類似蜘蛛網(wǎng)的特效,本文將用PyQt5實(shí)現(xiàn)這一特效,需要的可以參考一下2022-03-03解決python 在for循環(huán)并且pop數(shù)組的時(shí)候會(huì)跳過某些元素的問題
這篇文章主要介紹了解決python 在for循環(huán)并且pop數(shù)組的時(shí)候會(huì)跳過某些元素的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12