Python实现批量修改文件名(附带源码)

最近工作有个需求:

  • 批量修改指定目录下的所有文件名的后缀名
  • 批量修改指定目录下的所有文件名的开头或结尾
  • 批量修改指定目录下的所有文件名,根据指定规则进行替换

代码示例:

1. 批量修改文件后缀名

import os

def rename_files(folder_path, new_suffix):
    """批量修改指定目录下的所有文件名的后缀名

    Args:
        folder_path: 要修改的文件目录
        new_suffix: 新的文件后缀名

    Returns:
        None
    """

    for filename in os.listdir(folder_path):
        # 获取文件路径和扩展名
        filepath, ext = os.path.splitext(filename)

        # 判断文件是否存在
        if os.path.isfile(os.path.join(folder_path, filename)):
            # 修改文件名
            new_filename = filepath + new_suffix
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

# 使用示例
folder_path = "/path/to/folder"
new_suffix = ".txt"

rename_files(folder_path, new_suffix)

2. 批量修改文件名开头或结尾

import os

def rename_files(folder_path, prefix, suffix):
    """批量修改指定目录下的所有文件名的开头或结尾

    Args:
        folder_path: 要修改的文件目录
        prefix: 新的文件名前缀
        suffix: 新的文件名后缀

    Returns:
        None
    """

    for filename in os.listdir(folder_path):
        # 获取文件路径和扩展名
        filepath, ext = os.path.splitext(filename)

        # 判断文件是否存在
        if os.path.isfile(os.path.join(folder_path, filename)):
            # 修改文件名
            new_filename = prefix + filepath + suffix + ext
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

# 使用示例
folder_path = "/path/to/folder"
prefix = "new_"
suffix = "_new"

rename_files(folder_path, prefix, suffix)

3. 批量修改文件名,根据指定规则进行替换

import os

def rename_files(folder_path, replace_dict):
    """批量修改指定目录下的所有文件名,根据指定规则进行替换

    Args:
        folder_path: 要修改的文件目录
        replace_dict: 替换规则字典,key为要替换的字符串,value为替换后的字符串

    Returns:
        None
    """

    for filename in os.listdir(folder_path):
        # 获取文件路径和扩展名
        filepath, ext = os.path.splitext(filename)

        # 判断文件是否存在
        if os.path.isfile(os.path.join(folder_path, filename)):
            # 修改文件名
            new_filename = filepath
            for key, value in replace_dict.items():
                new_filename = new_filename.replace(key, value)
            new_filename = new_filename + ext
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

# 使用示例
folder_path = "/path/to/folder"
replace_dict = {
    "old": "new",
    "_": "-",
}

rename_files(folder_path, replace_dict)

以上代码仅供参考,请根据实际需求进行修改。

注意事项:

  • 批量修改文件名之前,请务必备份文件。
  • 批量修改文件名时,请注意区分大小写。

希望以上内容对您有所帮助。

相关推荐

  1. Python实现批量修改文件名附带

    2024-03-23 00:30:01       42 阅读
  2. Python小游戏(1)附带

    2024-03-23 00:30:01       33 阅读
  3. mybatis-plus的批量修改遇到的问题

    2024-03-23 00:30:01       46 阅读
  4. Go语言实现跳动的爱心(附带

    2024-03-23 00:30:01       57 阅读
  5. electron实现软件(热)更新(附带示例)

    2024-03-23 00:30:01       44 阅读
  6. python-使用ffmpeg批量修改文件的后缀名

    2024-03-23 00:30:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 00:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 00:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 00:30:01       82 阅读
  4. Python语言-面向对象

    2024-03-23 00:30:01       91 阅读

热门阅读

  1. Python判断一个数是否为素数

    2024-03-23 00:30:01       37 阅读
  2. 【力扣二刷思路】DAY5

    2024-03-23 00:30:01       42 阅读
  3. vmware中ubuntu虚拟机桥接模式和xshell连接

    2024-03-23 00:30:01       44 阅读
  4. 【mybatis】TypeAliasRegistry解读

    2024-03-23 00:30:01       42 阅读
  5. LeetCode-热题100:283.移动零

    2024-03-23 00:30:01       39 阅读
  6. Docker compose()

    2024-03-23 00:30:01       44 阅读
  7. Kubernetes集群部署

    2024-03-23 00:30:01       34 阅读
  8. 网络安全——笔记

    2024-03-23 00:30:01       45 阅读
  9. 随机选择游戏角色的代码

    2024-03-23 00:30:01       40 阅读