- 數據
可以發現文本的最後一列數據是由幾個單獨的字符串構成,那麼如何讀取呢?
代碼
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'}