Python视频帧重排需求:按指定顺序整理目录中的帧文件
解决视频帧文件排序问题
要实现你需要的排序顺序,可以通过自定义排序规则完成。核心思路是让带_scrambled后缀的文件优先排列,再按文件名中的数字序号升序排序。
实现步骤
- 遍历目标目录,筛选出所有
.jpg格式的帧文件 - 为每个文件生成排序键:
- 标记是否为scrambled文件(优先级:scrambled文件 > 原始文件)
- 提取文件名中的数字编号(如从
frame0_scrambled.jpg中提取0)
- 基于自定义键对文件列表排序
代码示例
import os # 替换为你的帧文件目录路径 frame_dir = "./your_frame_directory" # 获取目录下所有jpg文件 frame_files = [f for f in os.listdir(frame_dir) if f.endswith(".jpg")] def frame_sort_key(filename): # 判断是否是处理后的scrambled文件 is_scrambled = "_scrambled" in filename # 提取文件名中的数字部分 frame_num = int(filename.split("frame")[-1].replace("_scrambled.jpg", "").replace(".jpg", "")) # 先按是否scrambled排序,再按数字序号排序 return (0 if is_scrambled else 1, frame_num) # 执行排序 sorted_frames = sorted(frame_files, key=frame_sort_key) # 验证排序结果 for file in sorted_frames: print(file)
排序结果说明
运行上述代码后,文件会按照你需要的顺序输出:
frame0_scrambled.jpg frame1_scrambled.jpg frame2_scrambled.jpg frame3_scrambled.jpg frame4_scrambled.jpg frame0.jpg frame1.jpg frame2.jpg frame3.jpg frame4.jpg
内容的提问来源于stack exchange,提问作者JebJames
相关产品推荐
相关产品推荐

