python - 如何将文本文件中的单词与关键字列表进行比较并根据关键字匹配运行函数?

标签 python python-3.x text-files keyword-search

我有包含此类数据的文本文件:

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/

相关文章:

file - MATLAB如何在文本文件中写入文件头

javascript - 使用 Javascript 读取文本文件

python - 如何为 Pandas DataFrame 中找到的所有唯一值设置相同的频率?

python - 类型错误 : 'list' object is not callable in python

python - pytest 可以忽略导入依赖吗?我想对 Pi 代码进行单元测试

c - 我们如何在C语言中将list(Python中的)函数实现为数组?

python - Pandas DataFrame df.loc 是 View 还是新的 DataFrame 对象?

python - 计算相同字符的最大子串

python-3.x - 递归导入所有文件夹中的所有 .py 文件

c# - 如何从文本文件表单中验证用户名和密码