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

Python 3.7实现文件重命名自动追加递增序号不删除历史版本方案咨询

Python3.7 文件自动递增备份实现方案

核心实现逻辑

  • 先拆分目标文件的目录、文件名、后缀三个部分,生成初始备份文件名
  • 从1开始循环递增计数,生成带括号序号的备份名,直到找到当前目录下不存在的可用文件名
  • 仅执行重命名操作,全程无文件删除逻辑,不影响目录内其他无关文件
  • 封装为通用函数,支持传入不同路径的文件直接调用,满足多文件备份需求

完整实现代码

import os

def get_available_backup_path(original_file_path, backup_prefix="OLD"):
    """
    生成可用的备份文件路径,自动追加递增序号
    :param original_file_path: 要备份的原文件完整路径
    :param backup_prefix: 备份文件名的前缀,默认是OLD
    :return: 可用的备份文件完整路径
    """
    # 拆分原文件的目录、文件名、后缀
    dir_name = os.path.dirname(original_file_path)
    base_name = os.path.basename(original_file_path)
    file_name, ext = os.path.splitext(base_name)
    
    # 生成初始备份文件名
    backup_base = f"{backup_prefix}{file_name}"
    candidate_path = os.path.join(dir_name, f"{backup_base}{ext}")
    counter = 1
    
    # 循环查找未被占用的文件名
    while os.path.exists(candidate_path):
        candidate_path = os.path.join(dir_name, f"{backup_base}({counter}){ext}")
        counter += 1
    return candidate_path

def backup_file(original_file_path, backup_prefix="OLD"):
    """
    执行文件备份操作,重命名为带递增序号的备份文件
    :param original_file_path: 要备份的原文件完整路径
    :param backup_prefix: 备份文件名的前缀,默认是OLD
    """
    if not os.path.exists(original_file_path):
        print(f"Error: 原文件不存在:{original_file_path}")
        return
    backup_path = get_available_backup_path(original_file_path, backup_prefix)
    try:
        os.rename(original_file_path, backup_path)
        print(f"备份成功:{original_file_path} -> {backup_path}")
    except OSError as e:
        print(f"Error: 备份失败 {original_file_path} : {e.strerror}")

# 调用示例,处理两个不同路径的文件
if __name__ == "__main__":
    # 第一个要备份的文件
    backup_file(r"path/to/file/queues.sqlite")
    # 第二个要备份的文件,路径不同直接传对应路径即可
    backup_file(r"another/path/other_file.db")

方案说明

  • 完全兼容Python3.7版本,仅使用标准库os模块,无需安装第三方依赖
  • 只会匹配当前要备份的文件对应的备份命名格式,不会修改、删除目录下的其他文件
  • 序号是基于当前已存在的备份文件自动递增,不会出现覆盖历史备份的情况
  • 同分区下os.rename是原子操作,不会出现文件损坏的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 16:54:11