重新编译(模式、文件)调用导致系统崩溃

2024-05-23 19:09:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件需要解析。解析是以增量方式构建的,这样在每次迭代中,表达式都会变得更加具体。在

重载系统的代码段大致如下所示:

    for item in ret:
        pat = r'a\sstyle=".+class="VEAPI_Pushpin"\sid="msftve(.+?)".+>%s<'%item[1]
        r=re.compile(pat, re.DOTALL)
        match = r.findall(f)

该文件是一个相当大的HTML文件(从bing地图解析),每个答案必须与它的确切id匹配

在应用此更改之前,工作流非常好。有什么我能避免的吗?或者优化代码?在


Tags: 文件inrefor表达式系统代码段方式
1条回答
网友
1楼 · 发布于 2024-05-23 19:09:39

我唯一的猜测是你得到的匹配太多,内存不足。虽然这看起来不太合理,但可能是这样。尝试使用finditer而不是findall一次获取一个匹配,而不创建一个匹配的怪物列表。如果这不能解决您的问题,那么您可能在re模块中遇到了一个更严重的bug。在

相关问题 更多 >