Python 如何提高使用正则表达式处理文件的速度,而使用pypy会占用更多CPU时间?

Python 如何提高使用正则表达式处理文件的速度,而使用pypy会占用更多CPU时间?,python,pypy,Python,Pypy,在读取文本日志文件(postfix日志)时,我需要检查某些模式来划分行/拆分行,以存储文本日志文件每行中的属性值。因此,使用正则表达式“re.search”方法如下: if (re.search(' ms\n$', line)): line2 += line.partition('...')[2].split('\n')[0] break 该代码是否等同于:

在读取文本日志文件(postfix日志)时,我需要检查某些模式来划分行/拆分行,以存储文本日志文件每行中的属性值。因此,使用正则表达式“re.search”方法如下:

                if (re.search(' ms\n$', line)):
                    line2 += line.partition('...')[2].split('\n')[0]
                    break
该代码是否等同于:

                if ' ms\n' in line:
                    line2 += line.partition('...')[2].split('\n')[0]
                    break
后一种代码会提高python代码的执行速度吗?
如果每天都有许多这样的模式搜索需要进行,并且postgres表中的值更新速度更快,那么如何改进文件的处理。我们每天要存储大约300000条记录,大致每天读取1474175681字节的文本文件。这目前占用100%的CPU,速度也不快。如何优化代码?大多数代码只是检查文件行中的某些关键字,并进行与上述代码类似的处理。

您应该使用
line.endswith('ms\n')
,这完全等同于
re.search('ms\n$',line)
,而且速度更快。

最快的代码是您不执行的代码。重新思考这个问题工作流,避免仅仅为了用python处理而从数据库中提取文本