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

如何从SQL导出CSV的RTF字段中提取指定位置文本?Python遇阻

解决方案:从CSV的RTF字段提取指定位置文本

步骤说明

  1. 正确读取CSV字段:目标字段为RTF格式,可能包含逗号,需确保读取时不将字段内的逗号识别为分隔符。
  2. 解析RTF为纯文本:原始RTF包含大量格式标记,先转成纯文本再提取,能避免格式符干扰。
  3. 提取指定位置内容:根据字符索引切片(注意Python索引从0开始)。

所需工具

安装striprtf库用于RTF转纯文本:

pip install striprtf

代码实现

import csv
from striprtf import striprtf

# 配置参数
CSV_PATH = "your_exported_data.csv"
TARGET_FIELD_INDEX = 0  # 目标字段在CSV中的索引(从0开始计数)
START_POS = 14456       # 对应第14457位字符(索引需减1)
END_POS = 14528         # 对应第14528位字符(切片右边界)

with open(CSV_PATH, 'r', encoding='utf-8') as f:
    # 处理带引号包裹的字段,避免逗号分割错误
    reader = csv.reader(f, delimiter=',', quotechar='"')
    next(reader)  # 跳过表头(无表头则删除此行)
    
    for row in reader:
        rtf_raw = row[TARGET_FIELD_INDEX]
        # 转换RTF到纯文本
        plain_text = striprtf.striprtf(rtf_raw)
        # 提取指定范围文本
        result = plain_text[START_POS:END_POS]
        print(result)
        # 如需仅处理第一行数据,添加break
        # break

注意事项

  • 如果需要提取原始RTF字符串(包含格式标记)的对应位置,直接跳过RTF转换步骤,使用result = rtf_raw[START_POS:END_POS]即可。
  • 若遇到编码错误,尝试将encoding参数改为latin-1或gbk,匹配CSV文件的实际编码。
  • 转纯文本后字符数量会减少,若目标位置是基于纯文本的,需重新确认起始/结束索引。

内容的提问来源于stack exchange,提问作者Jeff Benitez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:42:15