我是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文件的持续时间列表。
非常感谢你。
答案 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
,而不是files
。 filename
是一个特定文件的名称,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)