Python3 clip.duration文件夹

时间:2018-06-07 17:31:55

标签: python-3.x os.walk

我是Python的新手(使用Python 3.6),并希望提取我在一个文件夹中的所有mp4文件的持续时间(以秒为单位)。我的代码是:

path2 = path_directory
from moviepy.video.io.VideoFileClip import VideoFileClip
    for root, dirs, files in os.walk(path2):
        for filename in files:
            clip = VideoFileClip(files)
            print(clip.duration)

如果我定义clip = VideoFileClip("name_of_one_specific_file.mp4")它会正确打印该特定文件的长度(即590秒),所以我猜错误在于如何浏览所有文件。我需要一个路径列表中的每个245 mp4文件的持续时间列表。

非常感谢你。

2 个答案:

答案 0 :(得分:0)

你只有一个小错误:

path2 = path_directory
from moviepy.video.io.VideoFileClip import VideoFileClip
for root, dirs, files in os.walk(path2):
    for filename in files:
        clip = VideoFileClip(filename) # <= !!!
        print(clip.duration)

您要打开filename,而不是filesfilename是一个特定文件的名称,files是目录中所有文件的列表。

答案 1 :(得分:0)

有一个较新的库,可以从Python 3.4获得,它通常比walk更容易使用。它是pathlib

这就是你在如何使用它的方式。

from pathlib import Path
from moviepy.video.io.VideoFileClip import VideoFileClip

path2 = r' -------- '
for filename in Path(path2).glob('*.mp4'):
    clip = VideoFileClip(filename.as_posix())
    print(clip.duration)