我正在编写一个简单的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。
谢谢! =)
答案 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)