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



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

这是另一回事。我尝试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)

最新更新