python:解决os.listdir乱序问题
程序员文章站
2022-05-04 21:42:33
...
背景:我有一个文件夹,其中有多个碎片化视频需要合并。
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]))
效果:
上一篇: 多个行的文本框post,如何识别呢
下一篇: Java内存模型与线程
推荐阅读
-
解决python Markdown模块乱码的问题
-
解决Python 命令行执行脚本时,提示导入的包找不到的问题
-
解决在Python编辑器pycharm中程序run正常debug错误的问题
-
解决Python找不到ssl模块问题 No module named _ssl的方法
-
python线程中的同步问题及解决方法
-
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
-
Python的Django应用程序解决AJAX跨域访问问题的方法
-
python中不能连接超时的问题及解决方法
-
python学习教程,如何解决Python中文编码乱码问题?
-
Python中使用socket发送HTTP请求数据接收不完整问题解决方法