python怎么讀取txt文件內(nèi)容

這篇文章主要講解了“python怎么讀取txt文件內(nèi)容”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python怎么讀取txt文件內(nèi)容”吧!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、昆玉網(wǎng)站維護、網(wǎng)站推廣。

python讀取txt文件的方法:1、使用read()函數(shù)逐個字節(jié)或者字符讀取txt文件中的內(nèi)容;2、使用readline()函數(shù)逐行讀取txt文件中的內(nèi)容;3、使用readlines()函數(shù)一次性讀取txt文件中多行內(nèi)容。

本教程操作環(huán)境:windows7系統(tǒng)、python3.7版,DELL G3電腦

Python 提供了如下 3 種函數(shù),它們都可以幫我們實現(xiàn)讀取文件中數(shù)據(jù)的操作:

  • read() 函數(shù):逐個字節(jié)或者字符讀取文件中的內(nèi)容;

  • readline() 函數(shù):逐行讀取文件中的內(nèi)容;

  • readlines() 函數(shù):一次性讀取文件中多行內(nèi)容。

Python read()函數(shù)

對于借助 open() 函數(shù),并以可讀模式(包括 r、r+、rb、rb+)打開的文件,可以調(diào)用 read() 函數(shù)逐個字節(jié)(或者逐個字符)讀取文件中的內(nèi)容。

如果文件是以文本模式(非二進制模式)打開的,則 read() 函數(shù)會逐個字符進行讀?。环粗?,如果文件以二進制模式打開,則 read() 函數(shù)會逐個字節(jié)進行讀取。

read() 函數(shù)的基本語法格式如下:

file.read([size])

其中,file 表示已打開的文件對象;size 作為一個可選參數(shù),用于指定一次最多可讀取的字符(字節(jié))個數(shù),如果省略,則默認(rèn)一次性讀取所有內(nèi)容。

舉個例子,首先創(chuàng)建一個名為 my_file.txt 的文本文件,其內(nèi)容為:

Python教程
https://www.php.cn/course/list/30.html

然后在和 my_file.txt 同目錄下,創(chuàng)建一個 file.py 文件,并編寫如下語句:

#以 utf-8 的編碼格式打開指定文件
f = open("my_file.txt",encoding = "utf-8")
#輸出讀取到的數(shù)據(jù)
print(f.read())
#關(guān)閉文件
f.close()

程序執(zhí)行結(jié)果為:

Python教程
https://www.php.cn/course/list/30.html

注意,當(dāng)操作文件結(jié)束后,必須調(diào)用 close() 函數(shù)手動將打開的文件進行關(guān)閉,這樣可以避免程序發(fā)生不必要的錯誤。

當(dāng)然,我們也可以通過使用 size 參數(shù),指定 read() 每次可讀取的最大字符(或者字節(jié))數(shù),例如:

#以 utf-8 的編碼格式打開指定文件
f = open("my_file.txt",encoding = "utf-8")
#輸出讀取到的數(shù)據(jù)
print(f.read(6))
#關(guān)閉文件
f.close()

程序執(zhí)行結(jié)果為:

Python

顯然,該程序中的 read() 函數(shù)只讀取了 my_file 文件開頭的 6 個字符。

再次強調(diào),size 表示的是一次最多可讀取的字符(或字節(jié))數(shù),因此,即便設(shè)置的 size 大于文件中存儲的字符(字節(jié))數(shù),read() 函數(shù)也不會報錯,它只會讀取文件中所有的數(shù)據(jù)。

除此之外,對于以二進制格式打開的文件,read() 函數(shù)會逐個字節(jié)讀取文件中的內(nèi)容。例如:

#以二進制形式打開指定文件
f = open("my_file.txt",'rb+')
#輸出讀取到的數(shù)據(jù)
print(f.read())
#關(guān)閉文件
f.close()

程序執(zhí)行結(jié)果為:

b'Python\xe6\x95\x99\xe7\xa8\x8b\r\nhttps://www.php.cn/course/list/30.html'

可以看到,輸出的數(shù)據(jù)為 bytes 字節(jié)串。我們可以調(diào)用 decode() 方法,將其轉(zhuǎn)換成我們認(rèn)識的字符串。

Python readline()函數(shù)

readline() 函數(shù)用于讀取文件中的一行,包含最后的換行符“\n”。此函數(shù)的基本語法格式為:

file.readline([size])

其中,file 為打開的文件對象;size 為可選參數(shù),用于指定讀取每一行時,一次最多讀取的字符(字節(jié))數(shù)。

和 read() 函數(shù)一樣,此函數(shù)成功讀取文件數(shù)據(jù)的前提是,使用 open() 函數(shù)指定打開文件的模式必須為可讀模式(包括 r、rb、r+、rb+ 4 種)。

下面程序演示了 readline() 函數(shù)的具體用法:

f = open("my_file.txt")
#讀取一行數(shù)據(jù)
byt = f.readline()
print(byt)

程序執(zhí)行結(jié)果為:

Python教程

由于 readline() 函數(shù)在讀取文件中一行的內(nèi)容時,會讀取最后的換行符“\n”,再加上 print() 函數(shù)輸出內(nèi)容時默認(rèn)會換行,所以輸出結(jié)果中會看到多出了一個空行。

不僅如此,在逐行讀取時,還可以限制最多可以讀取的字符(字節(jié))數(shù),例如:

#以二進制形式打開指定文件
f = open("my_file.txt",'rb')
byt = f.readline(6)
print(byt)

運行結(jié)果為:

b'Python'

和上一個例子的輸出結(jié)果相比,由于這里沒有完整讀取一行的數(shù)據(jù),因此不會讀取到換行符。

Python readlines()函數(shù)

readlines() 函數(shù)用于讀取文件中的所有行,它和調(diào)用不指定 size 參數(shù)的 read() 函數(shù)類似,只不過該函數(shù)返回是一個字符串列表,其中每個元素為文件中的一行內(nèi)容。

和 readline() 函數(shù)一樣,readlines() 函數(shù)在讀取每一行時,會連同行尾的換行符一塊讀取。

readlines() 函數(shù)的基本語法格式如下:

file.readlines()

其中,file 為打開的文件對象。和 read()、readline() 函數(shù)一樣,它要求打開文件的模式必須為可讀模式(包括 r、rb、r+、rb+ 4 種)。

舉個例子:

f = open("my_file.txt",'rb')
byt = f.readlines()
print(byt)

運行結(jié)果為:

[b'Python\xbd\xcc\xb3\xcc\r\n', b'https://www.php.cn/course/list/30.html']

感謝各位的閱讀,以上就是“python怎么讀取txt文件內(nèi)容”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對python怎么讀取txt文件內(nèi)容這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

分享文章:python怎么讀取txt文件內(nèi)容
分享網(wǎng)址:http://muchs.cn/article32/iehjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、ChatGPT企業(yè)網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站收錄網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)