Python 遍历文件夹中的每个文件以剪切部分视频

问题描述

我裁剪了大约数百个视频来裁剪每个剪辑的前 30 秒。该代码适用于一个剪辑,但当我放置路径时,代码开始不起作用。

我用我在下面尝试的内容粘贴了当前代码。我能否深入了解如何迭代文件夹中的每个文件

谢谢

import os
import ffmpeg

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
from moviepy.editor import *

def timeCrop():
    directory = "/Users/documents/lab/video/ProccessedVideo"
    count = 1

    for filename in os.listdir(directory):
        if filename.endswith(".mpg") or filename.endswith(".mp4"):
            path = os.path.join(directory,filename)
            input = ffmpeg.input(path)
            print(path,count)
            mice = ["022,90"]

            ffmpeg_extract_subclip("{path}.mpg",30,120,targetname="{mice[0]}.mpg,{mice[1]}.mpg")
            count += 1
def timeCrop2():

    directory = "/Users/documents/lab/video/ProccessedVideo"

    clip = VideoFileClip("022.mpg").cutout(0,30)
    clip.write_videofile("022e.mpg",codec="libx264")

#timeCrop()
timeCrop2()

解决方法

您可以使用以下代码使用过滤器(例如(.mp4))迭代目录中的每个文件

import os

directory = os.fsencode("D:\\Acroyoga")
  
for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.endswith(".mp4"):
        print(filename) #do your video process here
        continue
    else:
        continue

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...