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

如何在Python脚本中为输入视频文件所在目录创建输出文件夹?

修改方案

核心修改点

  • 基于输入视频的所在目录创建Output文件夹,而非脚本运行目录
  • 自动创建输出目录(如果不存在),避免运行报错
  • 简化路径处理,利用pathlib原生功能替代手动替换斜杠
  • 支持直接拖拽文件到脚本,无需手动输入路径

修改后的完整代码

import os
import sys
from pathlib import Path

# 获取脚本所在目录下的ffmpeg.exe路径,自动适配系统路径分隔符
script_dir = Path(__file__).parent
ffmpeg_path = str(script_dir / "ffmpeg.exe")

# 优先读取拖拽的文件路径(命令行参数),无参数则手动输入
if len(sys.argv) > 1:
    input_file = sys.argv[1]
else:
    input_file = input("Input File (provide full path):")

input_path = Path(input_file)
# 构建输入文件同目录下的Output文件夹路径
output_dir = input_path.parent / "Output"
# 创建输出目录(已存在则不报错)
output_dir.mkdir(exist_ok=True)

file_name = input_path.stem
# 拼接ffmpeg命令,用双引号包裹路径避免空格导致的识别错误
ffmpeg_cmd = f'"{ffmpeg_path}" -y -hide_banner -v quiet -stats -i "{input_file}" -vf fps=1/300 -vframes 12 "{output_dir}/{file_name}%03d.png"'
os.system(ffmpeg_cmd)

关键修改说明

  1. 输出目录定位:
    通过input_path.parent直接获取输入视频的所在目录,再拼接Output文件夹,确保输出文件和原视频在同一目录下。
  2. 自动创建目录:
    output_dir.mkdir(exist_ok=True)会自动生成Output文件夹,若文件夹已存在则跳过,避免因目录已存在抛出异常。
  3. 拖拽文件支持:
    利用sys.argv读取命令行参数,直接获取拖拽到脚本上的文件路径,省去手动输入的步骤。
  4. 路径空格兼容:
    给所有路径加上双引号包裹,解决路径含空格时ffmpeg无法识别的问题。
  5. 简化路径处理:
    用Path(__file__).parent获取脚本所在目录,自动适配Windows/类Unix系统的路径分隔符,无需手动替换\为/。

内容的提问来源于stack exchange,提问作者Doanh Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:25:12