背景:我有一个文件夹,其中有多个碎片化视频需要合并。
0_x是一个视频
1_x是第二个视频
使用ffmpeg合并,需要有一个按顺序排列的文档,才能进行合并,否则合并出的视频是乱序的
测试错误代码及示范:
import os
def get_merge():
path = 'E:\spiders\cache'
files = os.listdir(path)
for file in files:
for i in range(2):
if '{}_'.format(i) in file:
merge_txt = 'merge/{}.txt'.format(i)
open(merge_txt, 'a+').write("file %s\n" % file)
if __name__ == '__main__':
get_merge()
生成以下两个文本:(此步骤无误)
查看文本内顺序:
明显排序错误了。
解决及示范:
import os
def get_merge():
path = 'E:\spiders\cache'
files = os.listdir(path)
files.sort(key=lambda x: len(x) or int(x[2:3]) or int(x[2]))
for file in files:
for i in range(2):
if '{}_'.format(i) in file:
merge_txt = 'merge/{}.txt'.format(i)
open(merge_txt, 'a+').write("file %s\n" % file)
if __name__ == '__main__':
get_merge()
关键:files.sort(key=lambda x: len(x) or int(x[2:3]) or int(x[2]))
效果: