需要帮助重构我的python脚本

n17*_*911 3 python

我有一个python脚本,逐行处理文件,如果行匹配正则表达式,它调用一个函数来处理它.

我的问题是有更好的写入重构我的脚本.该脚本有效,但实际上,我需要在编辑器右侧保持缩进,因为我为我的文件添加了越来越多的正则表达式.

谢谢你的任何想法.现在我的代码最终会像这样:

for line in fi.readlines():

       result= reg1.match(line)

       if result:
               handleReg1(result)

       else:
               result = reg2.match(line)

               if result:
                       handleReg2(result)
               else:
                       result = reg3.match(line)

                       if result:
                               handleReg3(result)
                       else:
                               result = reg4.match(line)

                               if result:
                                       handleReg4(result)
                               else:
                                       result = reg5.match(line)

                                       if result:
                                              handleReg5(result)

sam*_*gar 12

我将切换到使用映射正则表达式到函数的数据结构.就像是:

map = { reg1: handleReg1, reg2: handleReg2, etc }
Run Code Online (Sandbox Code Playgroud)

然后你只需循环它们:

for reg, handler in map.items():
    result = reg.match(line)
    if result:
       handler(result)
       break
Run Code Online (Sandbox Code Playgroud)

如果您需要按特定顺序进行匹配,则需要使用列表而不是字典,但主体是相同的.