python讀取txt檔案的方法:1、使用read()函數逐個位元組或字元讀取txt檔案中的內容;2、使用readline()函數逐行讀取txt檔案中的內容;3、使用readlines()函數一次讀取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中文網其他相關文章!