Python 正在尝试删除标记,但很快内存不足

Python 正在尝试删除标记,但很快内存不足,python,beautifulsoup,out-of-memory,Python,Beautifulsoup,Out Of Memory,我正在尝试做一些简单的事情,即从HTML代码中删除所有标记,这些标记位于一个非常大的csv文件(3 GB)的行中。我尝试用下面的代码使用BeautifulSoup remove_tags=['p','li','ul','pre','h1'] soup=BeautifulSoup(row[1]) for tag in remove_tags: for match in soup.findAll(tag): match.replaceWithChildren()

我正在尝试做一些简单的事情,即从HTML代码中删除所有标记,这些标记位于一个非常大的csv文件(3 GB)的行中。我尝试用下面的代码使用BeautifulSoup

remove_tags=['p','li','ul','pre','h1']   
soup=BeautifulSoup(row[1])
for tag in remove_tags:
    for match in soup.findAll(tag):
           match.replaceWithChildren()
然而,有了这么大的文件,我很快就耗尽了内存,出现了内存错误(我的机器上甚至有很多RAM,所以这必须使用很多内存)。所以我想知道是否有人知道这样做的内存密集度较低的方法。也许regex可以通过删除所有的东西来工作(但是,我不知道如何使用regex)

注意:我想删除所有类型的HTML标记。上述代码中的remove_tags列表只是构建的,因为这些都是我在数据中可以看到的,所以如果有一种方法不需要指定标记名,那么它也可以工作。

使用(非常)简单的正则表达式方法:

import re
re.sub(r'<[^>]+>', '', row)
重新导入
re.sub(r']+>,'',第行)

谢谢。假设这种方法更节省内存是正确的吗?@user1893354很高兴它对您有效。是的,这种方法将大大节省内存。BeautifulSoup非常占用内存,因为它试图为DOM构建一个完整的树状结构。