首頁 > 軟體

教你利用python如何讀取txt中的資料

2022-03-01 13:03:38

前言

當我們在用python時可能會遇到想要把txt檔案裡的資料讀取出來然後進行繪圖,那麼我們要怎麼才能夠將txt裡的資料讀取出來呢?

假設有txt文字如下:

想要把上述文字資料讀取出來,可以用以下方法: 

方法一:運用open()函數

該方法使用最基本的open函數進行讀取,此處將會把資料讀取到一個列表中,這個方法一般就是open開啟檔案、read讀取檔案、close關閉檔案3個步驟,主要程式碼如下:

def openreadtxt(file_name):
    data = []
    file = open(file_name,'r')  #開啟檔案
    file_data = file.readlines() #讀取所有行
    for row in file_data:
        tmp_list = row.split(' ') #按‘,'切分每行的資料
        #tmp_list[-1] = tmp_list[-1].replace('n',',') #去掉換行符
        data.append(tmp_list) #將每行資料插入data中
        return data
 
 
if __name__=="__main__":
    data = openreadtxt('test.txt')
    print(data)

結果如下圖,已經成功列印出txt資料,這裡預設讀取的都是字串型別,需要的話,可以進行型別轉換,int,float都行:

方法二:使用numpy包的loadtxt方法

使用numpy包的loadtxt方法(在處理實驗資料中經常用到),numpy是python的一個科學庫,至於安裝教學參考python中的NumPy,使用loadtxt方法讀取txt檔案主要程式碼如下(這裡要求的資料必須是數位,不能是字母等字元,不然會報錯,因為numpy本身是做計算的,所以讀取的資料已經轉化為數值型別,非字串,這種方法在處理實驗資料中經常會用到,簡單快捷)︰

import numpy as np
 
def loadtxtmethod(filename):
    data = np.loadtxt(filename,dtype=np.float32,delimiter=',')
    return data
 
if __name__=="__main__":
    data = loadtxtmethod('D:paper reading基於優勝劣汰模型選擇的聯邦學習方案BBOA_ACC.txt')
    print(data)

程式執行截圖如下,已經成功列印出txt資料,這裡返回的是ndarray型別:

方法三:使用pandas的read_table方法進行讀取

首先先安裝pandas依賴包:

工具:

anaconda+python環境

步驟一:開啟anaconda,如下:

步驟二:進入你要安裝的python環境(虛擬環境,預設為base):

命令為: activate+虛擬環境名稱

步驟三:安裝pandas

命令為:pip install pandas

至此,pandas包安裝完成。此外其他python的依賴包也是依照上述方法進行安裝 

pandas是python的一個資料處理的包,功能很強大,提供了許多現成的讀取各種檔案的方法,像csv檔案的read_csv方法,excel檔案的read_excel方法等,主要程式碼如下(這裡不必要是數值的資料)︰

import pandas
 
def read_tablemethod(filename):
    data = pandas.read_table(filename,header=None,delim_whitespace=True)
    return data
 
if __name__=="__main__":
    data = read_tablemethod('D:paper reading基於優勝劣汰模型選擇的聯邦學習方案BBOA_ACC.txt')
    print(data)

程式執行結果如下,已經成功列印出資料,這裡返回的是DataFrame型別:

總結

到此這篇關於利用python如何讀取txt中資料的文章就介紹到這了,更多相關python讀取txt的資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com