首頁  >  文章  >  後端開發  >  python如何讀取txt檔案內容

python如何讀取txt檔案內容

青灯夜游
青灯夜游原創
2021-07-12 15:49:48209101瀏覽

python讀取txt檔案的方法:1、使用read()函數逐個位元組或字元讀取txt檔案中的內容;2、使用readline()函數逐行讀取txt檔案中的內容;3、使用readlines()函數一次讀取txt檔案中多行內容。

python如何讀取txt檔案內容

本教學操作環境:windows7系統、python3.7版,DELL G3電腦

Python 提供如下3 種函數,它們都可以幫我們實作讀取檔案中資料的操作:

  • read() 函數:逐個位元組或字元讀取檔案中的內容;

  • #readline() 函數:逐行讀取檔案中的內容;

  • readlines() 函數:一次讀取檔案中多行內容。

Python read()函數

對於借助open() 函數,並以可讀模式(包括r 、r 、rb、rb )開啟的文件,可以呼叫read() 函數逐個位元組(或逐個字元)讀取文件中的內容。

如果檔案是以文字模式(非二進位模式)開啟的,則read() 函數會逐個字元進行讀取;反之,如果檔案以二進位模式打開,則read() 函數會逐個字節進行讀取。

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

file.read([size])

其中,file 表示已開啟的檔案物件;size 作為一個可選參數,用於指定一次最多可讀取的字符(位元組)個數,如果省略,則預設一次讀取所有內容。

舉個例子,先建立一個名為my_file.txt 的文字文件,其內容為:

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

然後在和my_file.txt 同目錄下,建立一個file.py 文件,並編寫如下語句:

#以 utf-8 的编码格式打开指定文件
f = open("my_file.txt",encoding = "utf-8")
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

程式執行結果為:

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

注意,當操作檔結束後,必須呼叫close() 函數手動將開啟的檔案進行關閉,這樣可以避免程序發生不必要的錯誤。

當然,我們也可以透過使用size 參數,指定read() 每次可讀取的最大字元(或位元組)數,例如:

#以 utf-8 的编码格式打开指定文件
f = open("my_file.txt",encoding = "utf-8")
#输出读取到的数据
print(f.read(6))
#关闭文件
f.close()

程式執行結果為:

Python

顯然,程式中的read() 函數只讀取了my_file 檔案開頭的6 個字元。

再次強調,size 表示的是一次最多可讀取的字元(或位元組)數,因此,即便設定的size 大於檔案中儲存的字元(位元組)數,read() 函數也不會報錯,它只會讀取檔案中所有的資料。

除此之外,對於以二進位格式開啟的文件,read() 函數會逐個位元組讀取文件中的內容。例如:

#以二进制形式打开指定文件
f = open("my_file.txt",'rb+')
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

程式執行結果為:

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

可以看到,輸出的資料為 bytes 位元組字串。我們可以呼叫 decode() 方法,將其轉換成我們認識的字串。

Python readline()函數

#readline() 函數用於讀取檔案中的一行,包含最後的換行符「\n 」。此函數的基本語法格式為:

file.readline([size])

其中,file 為開啟的檔案物件;size 為可選參數,用於指定讀取每一行時,一次最多讀取的字元(位元組)數。

和read() 函數一樣,此函數成功讀取檔案資料的前提是,使用open() 函數指定開啟檔案的模式必須為可讀模式(包括r、rb、r 、rb 4 種)。

下面程式示範了readline() 函數的具體用法:

f = open("my_file.txt")
#读取一行数据
byt = f.readline()
print(byt)

程式執行結果為:

Python教程

由於readline() 函數在讀取檔案中一行的內容時,會讀取最後的換行符“\n”,再加上print() 函數輸出內容時預設會換行,所以輸出結果中會看到多出了一個空白行。

不僅如此,在逐行讀取時,還可以限制最多可以讀取的字元(位元組)數,例如:

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

執行結果為:

b'Python'

和上一個例子的輸出結果相比,由於這裡沒有完整讀取一行的數據,因此不會讀取到換行符。

Python readlines()函數

#readlines() 函數用於讀取檔案中的所有行,它和呼叫不指定size 參數的read() 函數類似,只不過該函數傳回是一個字串列表,其中每個元素為檔案中的一行內容。

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

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

file.readlines()

其中,file 為開啟的檔案物件。和 read()、readline() 函數一樣,它要求開啟檔案的模式必須為可讀模式(包括 r、rb、r 、rb 4 種)。

舉個例子:

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

運行結果為:

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

#【相關推薦:Python3影片教學

以上是python如何讀取txt檔案內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn