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

批量重命名:移除带浮点格式前缀文件名的非浮点数部分

批量重命名带浮点数前缀的文件(递归遍历子目录)

需求说明

只处理以X.XX格式浮点数为前缀的文件,将文件名替换为该浮点数本身;其他格式文件名(如30-39、31 {filename})保持不变,同时递归处理目标目录下的所有子目录。


Python 实现(跨平台通用)

import os
import re

# 匹配开头为浮点数前缀的正则:数字+小数点+数字,后续跟空格和任意内容
prefix_pattern = re.compile(r'^(\d+\.\d+)\s.*')

def batch_rename(root_dir):
    # 递归遍历所有子目录和文件
    for root, _, files in os.walk(root_dir):
        for file_name in files:
            match_result = prefix_pattern.match(file_name)
            if match_result:
                # 提取浮点数前缀作为新文件名
                new_file_name = match_result.group(1)
                old_file_path = os.path.join(root, file_name)
                new_file_path = os.path.join(root, new_file_name)
                
                # 避免覆盖已存在的文件
                if not os.path.exists(new_file_path):
                    os.rename(old_file_path, new_file_path)
                    print(f"重命名完成: {old_file_path} → {new_file_path}")
                else:
                    print(f"跳过: {new_file_path} 已存在,不覆盖")

if __name__ == "__main__":
    # 替换为你的目标目录路径,例如 "./my_files"
    target_dir = "./your_target_directory"
    if os.path.isdir(target_dir):
        batch_rename(target_dir)
    else:
        print(f"错误:目录 {target_dir} 不存在,请检查路径")

Python 脚本关键点

  • 使用os.walk递归遍历所有子目录
  • 正则表达式精准匹配浮点数前缀的文件,避免误处理其他格式
  • 重命名前检查目标文件是否存在,防止数据覆盖

Shell 脚本(Linux/macOS 适用)

#!/bin/bash

# 替换为你的目标目录路径
TARGET_DIR="./your_target_directory"

# 递归查找符合浮点数前缀的文件,并批量重命名
find "$TARGET_DIR" -type f -regex '.*/[0-9]+\.[0-9]+ .*' | while read -r old_file; do
    # 提取文件名部分
    file_name=$(basename "$old_file")
    # 用sed提取浮点数前缀作为新文件名
    new_file_name=$(echo "$file_name" | sed -E 's/^([0-9]+\.[0-9]+) .*/\1/')
    # 拼接新文件路径
    new_file_path=$(dirname "$old_file")/"$new_file_name"
    
    # 检查文件是否存在,避免覆盖
    if [ ! -e "$new_file_path" ]; then
        mv "$old_file" "$new_file_path"
        echo "重命名完成: $old_file → $new_file_path"
    else:
        echo "跳过: $new_file_path 已存在"
    fi
done

Shell 脚本关键点

  • find命令的-regex参数精准筛选目标文件
  • sed命令快速提取浮点数前缀
  • 处理包含空格的文件名,兼容大多数场景

注意事项

  1. 测试先行:建议先备份文件,或注释掉实际重命名的代码(Python中注释os.rename,Shell中把mv改成echo mv),确认匹配逻辑正确后再执行
  2. 特殊字符处理:如果文件名包含引号、特殊符号,可能需要额外调整脚本逻辑
  3. Windows 注意:Shell脚本无法在Windows原生环境运行,推荐使用Python脚本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:12:37