1 with open('X:/XXX/XXX/XXX/data.txt',encoding = "utf-8-sig") as file: 2 #上一行的參數!只使用'r'會出現報錯:'gbk' codec can't decode byte 0xb7 in position 8: illegal multibyte sequence,輸入encoding='utf-8'可解決
3 #只使用"utf-8"輸出時會出現文件第一行多出十六進制編碼,用'-sig'解決。
4 data_line = file.readline() 5 data_line = data_line.replace('\t',',') 6 data_line = data_line.strip('\n') 7 keys = data_line.split(',') 8
9
10 values_wet = set() #set()是建立空集合的惟一方法
11 values_dry = set() 12 values_harm = set() 13 values_re = set() 14
15
16 while True: 17 data_line = file.readline() 18 if data_line != '': #解決最後一行問題,注意要加else: break,否則死循環
19 data_line = data_line.strip('\n') 20 data_line = data_line.replace('\t',',') 21 values = data_line.split(',') 22 values_wet.add(values[1]) #添加值到集合,".add()"方法
23 values_dry.add(values[2]) 24 values_harm.add(values[3]) 25 values_re.add(values[4]) 26 else: 27 break
28
29
30 dic = {keys[1]:values_wet, keys[2]:values_dry, keys[3]:values_harm, keys[4]:values_re} 31
32
33 #定義函數判斷values屬於哪一個key
34 def get_key(value,dict=dic): 35 return [k for k,v in dict.items() if value in v] #列表解析式
36
37
38 #輸出
39 value1 = input('Enter the thing:') 40 print(get_key(value1))