You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从CSV文件中移除指定样式的span标签

解决CSV文件中移除特定样式span标签的问题

方法一:使用正则表达式(针对固定格式的目标标签)

如果目标span标签的样式字符串完全固定,可以修改正则规则,仅匹配该特定的span开始标签和对应的结束标签,保留其他所有标签。

修改后的代码如下:

import re

# 匹配目标span开始标签和对应的结束标签
TARGET_SPAN_PATTERN = re.compile(r'<span style="font-family: verdana,geneva; font-size: 10pt;">|</span>')

def clean_specific_span(raw_html):
    # 只替换目标span标签,保留其他标签
    cleaned_text = re.sub(TARGET_SPAN_PATTERN, '', raw_html)
    return cleaned_text

# 读写CSV文件(使用with语句自动处理文件关闭)
with open("file.csv", 'r') as a_file, open("file2.csv", 'w') as newfile:
    for line in a_file:
        cleaned_line = clean_specific_span(line)
        newfile.write(cleaned_line)

注意:如果目标span标签的样式属性存在空格差异(比如font-family: verdana,geneva ;多了空格),正则可能匹配不到,这种情况更推荐用下面的BeautifulSoup方法。

方法二:使用BeautifulSoup(更稳健的HTML解析方式)

处理HTML标签时,专业解析库比正则更可靠,能应对属性顺序变化、空格差异等复杂情况。

首先安装BeautifulSoup:

pip install beautifulsoup4

然后编写代码:

from bs4 import BeautifulSoup

def remove_target_span(raw_html):
    soup = BeautifulSoup(raw_html, 'html.parser')
    # 精准匹配带有指定样式的span标签
    target_spans = soup.find_all('span', style="font-family: verdana,geneva; font-size: 10pt;")
    for span in target_spans:
        # 移除span标签,但保留标签内的文本内容
        span.unwrap()
    return str(soup)

# 读写CSV文件
with open("file.csv", 'r') as a_file, open("file2.csv", 'w') as newfile:
    for line in a_file:
        cleaned_line = remove_target_span(line)
        newfile.write(cleaned_line)

该方法会精准定位目标span标签,移除标签本身但保留内部内容,同时完整保留<b>、<STRONG>、<p>等其他所有HTML标签。

内容的提问来源于stack exchange,提问作者3ndurance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:50:28