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

如何实现视频文件名自动递增 保存时避免覆盖已有同名文件

实现方案

你需要新增一个自动生成递增文件名的函数,逻辑为从序号1开始逐个判断对应文件是否已存在,直到找到第一个未被使用的序号,用它生成最终保存文件名,即可实现不覆盖已有文件的需求。

步骤1:新增递增文件名生成函数

import os.path as osp

def get_incr_filename(save_dir, base_name="Summary", ext=".mp4"):
    idx = 1
    while True:
        candidate_name = f"{base_name}_{idx}{ext}"
        full_path = osp.join(save_dir, candidate_name)
        if not osp.exists(full_path):
            return full_path
        idx += 1

步骤2:修改原有代码逻辑

你原有代码存在逻辑错误:判断保存目录不存在才创建视频写入器,正确逻辑是目录不存在时先创建目录,再生成合法文件名创建写入器,修改后完整代码如下:

import cv2
import h5py
import os
import os.path as osp
import argparse

parser = argparse.ArgumentParser()
# 把原来固定的save_name拆分为前缀+后缀参数,方便调整
parser.add_argument('--save-name-base', type=str, default='Summary', help="保存文件名前缀")
parser.add_argument('--save-ext', type=str, default='.mp4', help="保存文件后缀")
parser.add_argument('--save-dir', type=str, default='log', help="保存文件目录")
# 保留你原有需要的其他参数,示例如下,可按需调整
parser.add_argument('--fps', type=int, default=30, help="视频帧率")
parser.add_argument('--width', type=int, default=1920, help="视频宽度")
parser.add_argument('--height', type=int, default=1080, help="视频高度")
parser.add_argument('--dataset', type=str, default='dataset.h5', help="数据集路径")
args = parser.parse_args()

def frm2video(frm_dir, summary):
    # 先判断保存目录是否存在,不存在则创建
    if not osp.exists(args.save_dir):
        os.makedirs(args.save_dir, exist_ok=True)
    # 生成不重复的递增文件名
    final_save_path = get_incr_filename(args.save_dir, args.save_name_base, args.save_ext)
    # 初始化视频写入器
    vid_writer = cv2.VideoWriter(
        final_save_path,
        cv2.VideoWriter_fourcc(*'mp4v'),
        args.fps,
        (args.width, args.height)
    )
    # 原有处理逻辑写在这里,遍历summary对应的帧写入视频
    h5_res = h5py.File(args.dataset, 'r')
    # ===== 你的帧写入逻辑 =====
    h5_res.close()
    
    vid_writer.release()
    print(f"视频已成功保存:{final_save_path}")

注意事项

  • 单进程运行场景下上述代码可直接使用,无需额外调整
  • 若有多进程同时写文件的需求,需要额外增加文件锁避免冲突
  • 需要自定义文件名前缀时,直接修改--save-name-base参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:36:04