如何在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)
关键修改说明
- 输出目录定位:
通过input_path.parent直接获取输入视频的所在目录,再拼接Output文件夹,确保输出文件和原视频在同一目录下。 - 自动创建目录:
output_dir.mkdir(exist_ok=True)会自动生成Output文件夹,若文件夹已存在则跳过,避免因目录已存在抛出异常。 - 拖拽文件支持:
利用sys.argv读取命令行参数,直接获取拖拽到脚本上的文件路径,省去手动输入的步骤。 - 路径空格兼容:
给所有路径加上双引号包裹,解决路径含空格时ffmpeg无法识别的问题。 - 简化路径处理:
用Path(__file__).parent获取脚本所在目录,自动适配Windows/类Unix系统的路径分隔符,无需手动替换\为/。
内容的提问来源于stack exchange,提问作者Doanh Trần
相关产品推荐
相关产品推荐

