You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何对指定文件夹内所有MP4文件执行批量转换操作?

代码问题及修复实现

原代码核心问题

  • 遍历对象错误:for filename in folpath 中folpath是路径字符串,遍历会逐字符读取,永远不会匹配到.mp4后缀,导致判断分支完全不执行
  • 参数类型不匹配:将glob返回的文件列表直接传入AudioFileClip,该方法仅接收单个文件路径字符串
  • 输出路径未动态生成:未对输出音频路径做占位符填充,多文件处理时会出现文件覆盖问题
  • 路径拼接不规范:直接用字符串拼接路径容易触发转义字符问题,且没有直接过滤mp4文件增加冗余判断

正确实现代码

import glob
import os
from moviepy.editor import AudioFileClip

folpath = r'\\path'
# 直接过滤目标文件夹下的所有mp4文件
mp4_files = glob.glob(os.path.join(folpath, "*.mp4"))

for video_path in mp4_files:
    # 提取无后缀的文件名,用于生成对应wav文件名
    file_basename = os.path.splitext(os.path.basename(video_path))[0]
    # 拼接输出音频路径,保存在同目录下,和原视频同名
    audio_output_path = os.path.join(folpath, f"{file_basename}_speech.wav")
    
    # 提取音频并写入
    audioclip = AudioFileClip(video_path)
    audioclip.write_audiofile(audio_output_path)
    # 释放资源避免内存占用
    audioclip.close()

补充说明

  • 如果需要自定义输出路径,直接修改audio_output_path的拼接规则即可
  • 批量处理前可以先打印mp4_files确认读取到的文件列表是否符合预期,避免路径错误读取不到文件

内容的提问来源于stack exchange,提问作者beepofwaste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:06:03