以下为转载内容:
一个文件夹里有很多子文件夹,每个子文件夹里有一些视频,如何知道这个根目录下所有视频一共有多少分钟呢?
我用python写了一个小程序完成这个工作,用os.walk遍历文件,再用moviepy获得视频时长,用datatime把秒数转换成易读格式,代码在GitHub,欢迎大家Star!
https://github.com/aihy/my-tricks/blob/master/compute_duration.py
文件夹是这样的:
➜ 吴恩达deeplearning.ai ls
01.神经网络和深度学习
02.改善深层神经网络:超参数调试、正则化以及优化
03.结构化机器学习项目
04.卷积神经网络
05.序列模型
课件_课后作业_其他资料
指令:
python compute_duration.py --path /Users/phx/Downloads/吴恩达deeplearning.ai --type .mkv
输出:
1 day, 3:32:43.330000
moviepy需要用pip装一下
import os
import datetime
import sys
import argparse
from moviepy.editor import VideoFileClip
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description='Compute Total Time of a Series of Videos')
parser.add_argument("--path", metavar="PATH", default=".",
help="the root path of the videos(default: .)")
parser.add_argument("--type", metavar="TYPE", default=".mkv",
help="the type of the videos(default: .mkv)")
args = parser.parse_args()
filelist = []
for a, b, c in os.walk(args.path):
for name in c:
fname = os.path.join(a, name)
if fname.endswith(args.type):
filelist.append(fname)
ftime = 0.0
for item in filelist:
clip = VideoFileClip(item)
ftime += clip.duration
print("%d seconds: " % ftime,str(datetime.timedelta(seconds=ftime)))
分割线中间是原作者github中的代码