Python讀寫(xiě)文件模式和文件對(duì)象方法實(shí)例詳解
本文實(shí)例講述了Python讀寫(xiě)文件模式和文件對(duì)象方法。分享給大家供大家參考,具體如下:
一. 讀寫(xiě)文件模式
利用open() 讀寫(xiě)文件時(shí),將會(huì)返回一個(gè) file 對(duì)象,其基本語(yǔ)法格式如: open ( filename, mode)
其中,filename變量是一個(gè)包含了你要訪問(wèn)的文件名稱的字符串值。而mode決定了你打開(kāi)文件的模式:只讀,寫(xiě)入,追加等。所有可取值見(jiàn)如下的完全列表。
注:這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問(wèn)模式為只讀模式(r)
例如,我們現(xiàn)在將一個(gè)字符串寫(xiě)入到test.txt文件中,其中test.txt的存儲(chǔ)位置為: "E:/orig_data/test.txt" ,
具體操作如下:
#============================================================================= #打開(kāi)一個(gè)文件 file = open("E:/orig_data/test.txt" ,"w") file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用!") #關(guān)閉打開(kāi)的文件 file.close() #文件使用完畢后必須關(guān)閉,因?yàn)槲募?duì)象會(huì)占用操作系統(tǒng)的資源,并且操作系統(tǒng)同一時(shí)間能打開(kāi)的文 #件數(shù)量也是有限的 #為了簡(jiǎn)化操作,一般我們采用如下方式: with open("E:/orig_data/test.txt" ,"w") as file: file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用!") #讀取該文件時(shí) with open("E:/orig_data/test.txt" ,"r") as file: print(file.read()) #============================================================================
寫(xiě)入后得到的文件test.txt文件為:
在Python讀取文件的結(jié)果:
如果我們?cè)趯?xiě)入文本后,直接立馬打印則會(huì)出現(xiàn)以下結(jié)果:
#============================================================================= #打開(kāi)一個(gè)文件 file = open("E:/orig_data/test.txt" ,"w") num = file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用!") print(num) #關(guān)閉打開(kāi)的文件 file.close() #=============================================================================
結(jié)果輸出的是數(shù)字:29,即輸出的是雙引號(hào)內(nèi)寫(xiě)入字符的個(gè)數(shù)。
如果我們寫(xiě)入了非字符的文本,則需要現(xiàn)將其進(jìn)行轉(zhuǎn)換,然后在寫(xiě)入:
#============================================================================= #打開(kāi)一個(gè)文件 file = open("E:/orig_data/test.txt" ,"w") value = ("ww.baidu.com",28) s = str(value) file.write(s) #關(guān)閉打開(kāi)的文件 file.close() #=============================================================================
輸出的結(jié)果為:
("ww.baidu.com",28)
二. 文件對(duì)象的方法
在已有可讀取的文件的前提下,讀文件的讀取方法進(jìn)行總結(jié):
1. f.read()
為了讀取一個(gè)文件的內(nèi)容,調(diào)用 f.read(size), 這將讀取一定數(shù)目的數(shù)據(jù), 然后作為字符串或字節(jié)對(duì)象返回。size 是一個(gè)可選的數(shù)字類型的參數(shù)。 當(dāng) size 被忽略了或者為負(fù), 那么該文件的所有內(nèi)容都將被讀取并且返回。
#============================================================================ #讀取文件 file = open("E:/orig_data/test.txt" ,"r") str = file.read() print(str) file.close() #為了簡(jiǎn)化操作 with open("E:/orig_data/test.txt" ,"r") as file: print(file.read()) #===========================================================================
打印的結(jié)果:
2. f.readline()
f.readline() 會(huì)從文件中讀取單獨(dú)的一行。換行符為 '\n'。
f.readline() 如果返回一個(gè)空字符串, 說(shuō)明已經(jīng)已經(jīng)讀取到最后一行。
#========================================================================== #為了簡(jiǎn)化操作,一般我們采用如下方式: with open("E:/orig_data/test.txt" ,"w") as file: file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用。\n是的,的確如此!") #============================================================================ #讀取文件 file = open("E:/orig_data/test.txt" ,"r") str = file.readline() print(str) file.close() #為了簡(jiǎn)化操作 with open("E:/orig_data/test.txt" ,"r") as file: print(file.readline()) #===========================================================================
文件讀取的結(jié)果:
說(shuō)明:寫(xiě)入了兩行文本,但是結(jié)果只讀取了一行,即按行讀取的結(jié)果。如果想要讀取全部文本,可利用for循環(huán),逐行讀取,如
#========================================================================== #為了簡(jiǎn)化操作,一般我們采用如下方式: with open("E:/orig_data/test.txt" ,"w") as file: file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用。\n是的,的確如此!") #============================================================================ #讀取文件 file = open("E:/orig_data/test.txt" ,"r") for line in file: print(line, end=' ') file.close() #===========================================================================
讀取的結(jié)果:
注:這個(gè)方法很簡(jiǎn)單, 但是并沒(méi)有提供一個(gè)很好的控制。因此實(shí)際中更多的我們建議利用f.readlines()來(lái)讀取。
3. f.readlines()
f.readlines() 將返回該文件中包含的所有行。
如果設(shè)置可選參數(shù) sizehint, 則讀取指定長(zhǎng)度的字節(jié), 并且將這些字節(jié)按行分割。
#========================================================================== #為了簡(jiǎn)化操作,一般我們采用如下方式: with open("E:/orig_data/test.txt" ,"w") as file: file.write("Python是一個(gè)很好的語(yǔ)言,和MATLAB一樣簡(jiǎn)單好用。\n是的,的確如此!") #============================================================================ #讀取文件 file = open("E:/orig_data/test.txt" ,"r") str = file.readlines() print(str) file.close() #為了簡(jiǎn)化操作 with open("E:/orig_data/test.txt" ,"r") as file: print(file.readlines()) #===========================================================================
文件讀取的結(jié)果:
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談django 模型類使用save()方法的好處與注意事項(xiàng)
這篇文章主要介紹了淺談django 模型類使用save()方法的好處與注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03在Python的Flask框架中實(shí)現(xiàn)全文搜索功能
這篇文章主要介紹了在Python的Flask框架中實(shí)現(xiàn)全文搜索功能,這個(gè)基本的web功能實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,需要的朋友可以參考下2015-04-04python實(shí)現(xiàn)每次處理一個(gè)字符的三種方法
這篇文章主要介紹了python實(shí)現(xiàn)每次處理一個(gè)字符的三種方法,是非常實(shí)用的字符串操作技巧,需要的朋友可以參考下2014-10-10python簡(jiǎn)單實(shí)現(xiàn)9宮格圖片實(shí)例
在本篇內(nèi)容里小編給各位分享的是一篇關(guān)于python實(shí)現(xiàn)朋友圈中的九宮格圖片的實(shí)例講解,有需要的朋友們可以參考下。2020-09-09python常見(jiàn)統(tǒng)計(jì)分析處理函數(shù)解讀
這篇文章主要介紹了python常見(jiàn)統(tǒng)計(jì)分析處理函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07python 使用openpyxl讀取excel數(shù)據(jù)
這篇文章主要介紹了python 使用openpyxl讀取excel數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02Python?Django源碼運(yùn)行過(guò)程解析
這篇文章主要介紹了Python?Django源碼運(yùn)行過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08用?Python?繪制全國(guó)鴻星爾克門(mén)店分布圖
這篇文章主要介紹了用?Python?繪制全國(guó)鴻星爾克門(mén)店分布圖,今天就以某度地圖?用Python爬蟲(chóng)看一下全國(guó)到底有多少家鴻星爾克門(mén)店,,需要的朋友可以參考一下2022-01-01