gpt4 book ai didi

python - python中字典搜索结果的回调函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:27 25 4
gpt4 key购买 nike

我有一个现有的 python 脚本,除其他外,它根据正则表达式字典检查文件。如果该文件包含一个正则表达式,我注意到已经进行了字典匹配,打印包含该文件的行并继续。很简单。

但是我现在想为文件命中的每个 RE 建立一个不同的回调函数。我对如何在长 if/elseif block 之外的 python 中完成这件事感到困惑。这是应该在 PERL 中完成的情况吗? (这意味着我必须重写相当多的代码,因此一开始就没有这样做)。

我已经检查了这些(甚至是帖子中的链接)以寻找可能的解决方法,但还没有看到任何可能有效的方法:

Replacements for switch statement in Python?

https://stackoverflow.com/questions/374239/why-doesnt-python-have-a-switch-statement

最佳答案

你可以这样做:

def callback1(line, regex_match):
#do what you want

def callback2(line, regex_match):
#do what you want... else


regex_dict = {
"first_regex" : callback1,
"second_regex" : callback2,
}

file_to_check = open("the_file")
for line in file_to_check:
for regex, callback in regex_dict.iteritems():
result = re.match(regex, line)
if result:
callback(line, result)
break

然后,在每次正则表达式匹配时,您将调用与行和正则表达式结果关联的回调。

关于python - python中字典搜索结果的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com