Python解析器脚本布局

时间:2010-08-24 02:48:58

标签: python parsing

我正在编写一个简单的Python解析器,我遍历文件中的每一行,并在满足正确条件的情况下进一步推进。我的短暂开始:

    def identify(hh_line):
        if(re.match(regex.new_round, hh_line)):
            m = re.match(regex.new_round, hh_line)
            # insert into psql

        ...

        if(re.match...

..我想知道什么是实现此任务的最佳方法(练习),因为这是我第一次编写Python。

谢谢! =)

1 个答案:

答案 0 :(得分:3)

首先,两次运行匹配是多余的 - 而是运行它,存储结果,然后分支:

m = re.match(regex.new_round, hh_line)
if m:
    # ...

接下来,如果你有一堆正则表达式 - >处理组合,你可能改为拼写正则表达式 - >函数映射,然后迭代它:

def process_a(data):
    # ...

def process_b(data):
    # ...

regex_to_process = {
    'regex_a': process_a,
    'regex_b': process_b,
}

for hh_line in <file object>:
    for regex,process in regex_to_process.iteritems():
        m = re.match(regex, hh_line)
        if m:
            process(hh_line)