我正在使用subprocess.run(),该方法使用的参数将文件引用为"./0.mkv"
它告诉我找不到文件“ ./0.mkv”,我需要引用整个路径还是有办法使./
正确引用?
或者不确定,也许完全是另外一回事。
这是实际的代码:
temp_file_path = "./0.mkv"
final_file_path = "./0hardsubs.mkv"
cmd = ['ffmpeg', '-i', f'"{temp_file_path}"', \
'-filter_complex', f'"subtitles=\'{temp_file_path}\'"', \
f'"{final_file_path}"', '-y', '-loglevel', 'warning', '-stats']
subprocess.run(cmd)
这是输出:
"./0.mkv": No such file or directory
答案 0 :(得分:0)
原来这是另一回事。
我尝试了print(os.path.getsize(temp_file_path))
并收到了正确的输出,因此Python显然能够看到该文件。
一旦我删除了ffmpeg输入,过滤器和输出周围的双引号,一切工作正常。不知道怎么可能,但我想这是subprocess.run的功能,它可以自动清除参数?
对于感兴趣的人,这是最终输出:
temp_file_path = "./0.mkv"
final_file_path = "./0hardsubs.mkv"
cmd = ['ffmpeg', '-i', f'{temp_file_path}', \
'-filter_complex', f'subtitles=\'{temp_file_path}\'', \
f'{final_file_path}', '-y', '-loglevel', 'warning', '-stats']
subprocess.run(cmd)