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

如何在Python中移除文件名.CSV后缀后的多余内容

Python实现文件名处理:移除.CSV之后的所有内容

嘿,这个需求挺常见的,我给你分享几个实用的Python实现方案,你可以根据自己的场景来选:

方案一:使用字符串分割(简单直接)

如果能确定文件名里只会出现一次.CSV,用split方法最快:

filename = "Testfile_20190226114536.CSV.986466.1551204043175"
# 只分割一次,避免意外分割到其他内容
split_parts = filename.split(".CSV", 1)
clean_filename = split_parts[0] + ".CSV"
print(clean_filename)  # 输出: Testfile_20190226114536.CSV

这个思路就是把文件名按.CSV拆成两部分,取第一部分再拼接回.CSV,一步到位。

方案二:使用索引切片(更安全)

如果需要考虑文件名里可能没有.CSV的情况,用rfind找到.CSV的位置再切片会更稳妥:

filename = "Testfile_20190226114536.CSV.986466.1551204043175"
# 找到.CSV的起始位置
csv_start_pos = filename.rfind(".CSV")
if csv_start_pos != -1:
    # 切片到.CSV的末尾(.CSV长度为4,所以起始位置+4)
    clean_filename = filename[:csv_start_pos + 4]
else:
    # 如果没有找到.CSV,返回原文件名
    clean_filename = filename
print(clean_filename)

这个方法会先检查.CSV是否存在,不存在就返回原文件名,避免出现索引错误,容错性更强。

方案三:使用os.path模块(处理复杂扩展名场景)

如果你的文件名可能有多层嵌套的扩展名(比如.CSV.abc.def),可以用os.path.splitext循环分割直到找到.CSV:

import os

filename = "Testfile_20190226114536.CSV.986466.1551204043175"
current_name, current_ext = os.path.splitext(filename)

# 循环分割直到找到.CSV或者没有扩展名
while current_ext != ".CSV" and current_ext:
    current_name, current_ext = os.path.splitext(current_name)

# 最终拼接结果
clean_filename = current_name + current_ext if current_ext == ".CSV" else filename
print(clean_filename)

这个方案适合更复杂的文件名结构,不过对于你的需求来说,前两种已经足够好用啦。

内容的提问来源于stack exchange,提问作者Seán Dempsey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:54:28