问题描述
我有很多要转换为.mp4的.mkv文件,因此我决定尝试用python编写解决方案。几个小时后,试图弄清楚如何复制子文件夹,我放弃了,决定继续转换单个子文件夹,然后将其复制到另一个目录。
我已经制作了一个简单的脚本,该脚本应该转换与脚本位于同一文件夹中的.mkv文件。但是,我不断收到此错误:
FileNotFoundError:[WinError 2]系统找不到指定的文件
这是我的代码:
import os
import ffmpeg
start_dir = os.getcwd()
def convert_to_mp4(mkv_file):
no_extension = str(os.path.splitext(mkv_file))
with_mp4 = no_extension + ".mp4"
ffmpeg.input(mkv_file).output(with_mp4).run()
print("Finished converting {}".format(no_extension))
for path,folder,files in os.walk(start_dir):
for file in files:
if file.endswith('.mkv'):
print("Found file: %s" % file)
convert_to_mp4(file)
else:
pass
解决方法
好吧,答案总是比您期望的简单。
归结为:
def convert_to_mp4(mkv_file):
name,ext = os.path.splitext(mkv_file)
out_name = name + ".mp4"
ffmpeg.input(mkv_file).output(out_name).run()
print("Finished converting {}".format(mkv_file))
for path,folder,files in os.walk(start_dir):
for file in files:
if file.endswith('.mkv'):
print("Found file: %s" % file)
convert_to_mp4(os.path.join(start_dir,file))
else:
pass
确保ffmpeg.exe与脚本位于同一目录中。