python讀取txt文件中沒有對齊的一列的數據

  • 數據
  • 可以發現文本的最後一列數據是由幾個單獨的字符串構成,那麼如何讀取呢?

代碼

with open(filename,"r") as f:
    data = []
    label = []
    # 按行讀取數據
    for line in f.readlines():
        new_line = line.strip()  # 去除尾部的\n
        data.append(new_line)
        array = c_array[-1].split('\t')  # \t表示tab鍵,去除tab鍵空格
        label.append(array[-2]+' '+array[-1])
                             
    print('data:',data)
    print('label:',label)

 解釋:

(1)因爲按行讀取文本數據,會附帶將行末的換行符“\n”讀進去,因此需要strip()函數去除換行符。

(2)第一行的讀取結果如圖所示,可以發現每一行四個元素之間以製表符隔開,因此使用split()函數將四個元素提取出來。但是,split的結果卻是將四個元素生成了五個元素,觀察輸入文本發現,split將每行的最後一個元素中的一個空格鍵誤認爲tab鍵進行分割了。這點不知道是什麼原因,但是針對文本,可以將生成的array數組中的倒數兩個數重新連接,便還原了原始元素。

該文本的最終輸出結果是

 剔除重複的,可以set一下,結果如下

print(set(label))
{'normal no lenses', 'normal hard', 'reduced no lenses', 'normal soft'}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章