Python3 Subprocess.run找不到相对引用的文件

时间:2019-01-08 23:27:15

标签: python-3.x ubuntu

我正在使用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

1 个答案:

答案 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)