批量合并视频/图像,合并前重命名避免覆盖

血的教训:采用md5哈希算法+时间戳重命名,避免覆盖

合并后就能安安心心排序了

python 复制代码
import os
import hashlib
import shutil

# 指定的源文件夹列表
source_dirs = ["video/vox2/8-12/10s", "video/vox2/12-20/10s", "video/vox2/20-30/10s", "video/vox2/30-60/10s", "video/vox2/60-inf"]  # 添加更多文件夹

# 目标文件夹
target_dir = "video/vox2/10s"

# 创建目标文件夹,如果它不存在
if not os.path.exists(target_dir):
    os.makedirs(target_dir)

# 遍历每个源文件夹
for source_dir in source_dirs:
    if not os.path.exists(source_dir):
        print(f"Warning: Directory does not exist: {source_dir}")
        continue

    print(f"Processing directory: {source_dir}")

    # 使用 os.walk() 递归遍历文件夹
    for root, dirs, files in os.walk(source_dir):
        for filename in files:
            print(f"Checking file: {os.path.join(root, filename)}")

            # 检查文件是否为.jpg或.png格式
            if filename.lower().endswith('.mp4'):
                # 分离文件名和扩展名
                base_name, ext = os.path.splitext(filename)

                # 生成文件内容的哈希值
                with open(os.path.join(root, filename), 'rb') as f:
                    file_hash = hashlib.md5(f.read()).hexdigest()

                # 获取文件的修改时间戳
                modification_time = os.path.getmtime(os.path.join(root, filename))

                # 构建目标文件路径
                dst_file_path = os.path.join(target_dir, f"{file_hash}_{modification_time}{ext}")

                # 如果文件已存在,递增后缀直到找到唯一文件名
                while os.path.exists(dst_file_path):
                    modification_time += 0.001  # 微小增加时间戳
                    dst_file_path = os.path.join(target_dir, f"{file_hash}_{modification_time}{ext}")

                # 构建源文件的完整路径
                src_file_path = os.path.join(root, filename)

                # 复制文件到目标文件夹
                shutil.copy2(src_file_path, dst_file_path)

                # 输出信息
                print(f'Copied "{filename}" from "{root}" to "{dst_file_path}"')
            else:
                print(f"Ignored file: {os.path.join(root, filename)}")

print("All images have been merged successfully.")
相关推荐
音视频牛哥3 小时前
SmartMediaKit macOS版RTSP/RTMP低延迟播放器:技术架构、核心能力与应用实践
音视频·低延迟rtsp播放器·macos直播播放器·macos rtsp播放器·macos rtmp播放器·rtsp播放器mac版·rtmp播放器mac版
潜创微科技6 小时前
沁恒CH9339:USB3.0超高速对拷,两台电脑一根线共享一切
音视频
Cxiaomu6 小时前
从 TRTC Demo 到独立音视频服务:React + TRTC Web SDK 服务化实践
前端·react.js·音视频
EasyGBS9 小时前
政务视频资源汇聚:国标GB28181视频平台EasyGBS在“一网统管”中的定位和落地路径
网络·音视频·政务
蝉蜕日记1 天前
视频压缩 v1.1.31:高效压缩,无损画质,释放存储空间
音视频·生活·视频编解码·视频·软件需求
lumengabc1 天前
视频制作流程MP4旁白语音生成裁剪视频压缩python处理ppt转视频M4a格式
音视频
音视频牛哥1 天前
AI浪潮下,实时音视频SDK正在经历怎样的价值重构?
人工智能·音视频·实时音视频·rtmp推流·低延迟rtsp播放器·低延迟rtmp播放器·rtsp转rtmp推流
乐橙开放平台1 天前
明厨亮灶笔记:乐橙轻应用 H5 + 小程序插件,一套 BFF 出两张播放凭证
人工智能·笔记·物联网·小程序·音视频·notepad++
ofoxcoding1 天前
Seedance 2.0 与 Wan 2026 视频生成 API 成本效率深度对比分析
网络·人工智能·ai·音视频
xingyuzhisuan1 天前
星宇智算 AI 视频生成工具九维度全测评与行业对标分析
人工智能·音视频