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

如何使用列表/集合作为关键字批量移除文件名中的指定内容

批量移除文件名指定关键词的解决方案

你的代码问题在于直接用列表做判断和替换操作是无效的——if keys in filename没法检查列表里的任意关键词是否存在于文件名中,filename.replace(keys,"")也不支持直接传入列表作为替换目标。

要实现批量移除所有指定关键词,你可以遍历关键词列表,对每个文件名依次执行替换操作,具体代码如下:

import os

dirName = "你的目标文件夹路径"
keys = ["720p", "720", "1080p", "1080"]

for filename in os.listdir(dirName):
    # 跳过文件夹,只处理文件
    if os.path.isdir(os.path.join(dirName, filename)):
        continue
    
    new_filename = filename
    # 遍历每个关键词,逐个替换
    for key in keys:
        new_filename = new_filename.replace(key, "")
    
    # 只有当文件名确实被修改时才执行重命名,避免无意义操作
    if new_filename != filename:
        old_path = os.path.join(dirName, filename)
        new_path = os.path.join(dirName, new_filename)
        os.rename(old_path, new_path)

补充优化:

  • 先判断是否为文件,避免误改文件夹名称
  • 对每个文件名循环用所有关键词执行替换,确保所有指定关键词都被移除
  • 增加文件名对比,只有内容变化时才重命名,避免重复操作

如果需要优先替换更长的关键词(比如先替换720p再替换720,防止720p被拆成p残留),可以把关键词按长度从长到短排序:

keys = sorted(["720p", "720", "1080p", "1080"], key=len, reverse=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:50:31