我有带有此类数据的文本文件:

height 10.3
weight 221.0
speed 84.0
height 4.2
height 10.1
speed 1.2


我想读取文件,每次找到关键字heightweightspeed之一时,我都想调用其他函数。例如,如果遇到height关键字要调用函数convert_hight(h)

关键字可以在整个文件中以任何顺序出现,但是它们始终出现在该行的开头。

我必须指出,这是一个简化的示例,实际上我有数百个关键字,并且文本文件可能很大,因此,我想避免将文件中的每个单词与关键字列表中的每个单词进行比较。

我该如何解决这个问题?
(我正在使用python)

最佳答案

您可以使用功能字典:

def convert_hight(h):
   #do something

def convert_speed(s):
   #do something

def convert_weight(w):
   #do something

d = {"height":convert_height, "weight":convert_weight, "speed":convert_speed}

data = [i.strip('\n').split() for i in open('filename.txt')]
for type, val in data:
   d[type](float(val))

关于python - 如何将文本文件中的单词与关键字列表进行比较,并基于关键字匹配运行功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46098505/

10-12 13:09