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

Python按下划线分割文件名:提取前缀的非正则实现需求

提取文件名前缀的非正则解决方案

针对你需要从类似Planning_Group_20180108.ind或Soldto_20180108的文件名里提取前缀的需求,我整理了一套不用正则表达式的简单方法,没接触过正则的朋友也能轻松上手:

核心思路

观察文件名规律就能发现:前缀和8位日期数字之间用下划线分隔,且日期是文件名去掉扩展名后的最后一段内容。所以我们只需要找到最后一个下划线的位置,截取它之前的内容即可。

具体步骤(以Python为例)

  • 第一步:去掉文件的扩展名(如果有)。比如把Planning_Group_20180108.ind处理成Planning_Group_20180108
  • 第二步:定位最后一个下划线的位置
  • 第三步:从文件名开头截取到该位置的内容,就是我们要的目标前缀

代码示例

def extract_prefix(filename):
    # 从右往左找第一个".",分割一次以去掉扩展名
    name_without_ext = filename.rsplit(".", 1)[0]
    # 从右往左找第一个下划线的索引位置
    last_underscore_pos = name_without_ext.rfind("_")
    # 截取前缀内容
    prefix = name_without_ext[:last_underscore_pos]
    return prefix

# 测试案例
print(extract_prefix("Planning_Group_20180108.ind"))  # 输出: Planning_Group
print(extract_prefix("Soldto_20180108"))  # 输出: Soldto

方法优势说明

  • rsplit(".", 1)能适配文件名里包含多个点的情况(比如abc.def_20231234.txt),确保只去掉最后一个扩展名
  • rfind("_")不管前缀里有多少个下划线,都能精准定位到日期前的分隔符,完美覆盖两种文件名格式的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:27:49