python - Subprocess.run 和未知数量的文件,如何?
问题描述
所以我目前正在尝试制作一些使用 mkvmerge 来合并音频、视频和未知数量的字幕文件的东西。目前,这些字幕文件路径在一个列表中。
这是我的问题。我一生都无法想出一种将其放入子进程运行中而不会引发错误的方法。如果我将字幕名称组合成一个字符串,mkvmerge 会抛出一个错误,因此每个文件都需要在 "","" 内。
所以,没有字幕的命令看起来像这样:
subprocess.run(['C:\MKVToolNix\mkvmerge.exe', '-o', f'E:\Videos\{output_filename}.mkv', 'E:\Videos\viddec.mp4', 'E:\Videos\auddec.mp4'])
所以这将产生一个工作视频。
AFAIK,包含两个字幕的格式正确的子进程调用需要看起来像这样。
subprocess.run(['C:\MKVToolNix\mkvmerge.exe', '-o', f'E:\Videos\{output_filename}.mkv', 'E:\Videos\viddec.mp4', 'E:\Videos\auddec.mp4', 'E:\Videos\eng.srt', 'E:\Videos\nor.srt'])
是否可以将这样的变量作为单独的字符串添加到 subprocess.run 调用中,以便它能够正常运行?或者是否有我想不出的不同方法/调用?
解决方案
您可以在调用之前构建参数列表subprocess.run
,只要您需要它,然后在调用中传递该列表。
推荐阅读
- python - PySpark:GroupByKey 并获取元组的总和
- javascript - 更改 jQuery 日期选择器的格式
- android - 来自不同类的 onActivityResult 方法,用于从图库中挑选图像
- python - 在熊猫中替换此功能的更好方法?
- css - 如何在 Css 中创建菱形(虚线)边框底部
- php - 如何在没有 Ajax 的情况下将 PHP 文件连接到 HTML 文件
- c++ - 线程中的 QModbus 在 Qt 中产生错误
- maven - 使用 --base-href 构建 Angular 库
- python - Python 正则表达式表示第二个最后一个单词
- python - 继续接收 FileNotFoundError: [Errno 2] No such file or directory: '' 在 python 中写入文件时出错