如何从 python 执行命令提示符命令?

时间:2021-05-03 09:02:01

标签: python python-3.x batch-file cmd python-requests

我有以下命令并在命令提示符下执行它:

ffmpeg.exe -i input.mkv -i output.mkv -lavfi psnr=stats_file=psnrmkv.txt -f null -

此命令计算两个文件之间的 PSNR 并将结果保存在 pnsrmkv.txt 但我必须为每个视频输入这个命令,我有 200 多个视频:(。现在我试图在 python 中执行它。每次我必须更改输入和输出视频和 PSNR 文本文件的名称。是有什么方法可以在 python 中实现命令行吗?你能帮我解决这个问题吗?我是初学者,如果你有任何代码或链接来解释这样的事情,我会非常感激。我正在使用 windows 和 python 3.7. subprocess 可以帮忙解决这个问题吗?

我使用了以下代码,但它产生了错误:

import subprocess as s
s.call(["command.exe", "ffmpeg.exe -i E:\mpeg_file\input.mkv -i E:\mpeg_file\2.mkv -lavfi psnr=stats_file=psnrmkv.txt -f null -"])

错误:

<块引用>

回溯(最近一次调用最后一次):

文件“”,第2行,在 s.call(["command.exe", "ffmpeg.exe -i E:\mpeg_file\input.mkv -i E:\mpeg_file\2.mkv -lavfi psnr=stats_file=psnrmkv.txt -f null -"])

文件“D:\software\Anaconda3\envs\py37\lib\subprocess.py”,第287行, 通话中 用 Popen(*popenargs, **kwargs) 作为 p:

文件 "D:\software\Anaconda3\envs\py37\lib\site-packages\spyder_kernels\customize\spydercustomize.py", 第 105 行,在 init 中 super(SubprocessPopen, self).init(*args, **kwargs)

文件“D:\software\Anaconda3\envs\py37\lib\subprocess.py”,第 729 行, 在初始化 restore_signals, start_new_session)

文件“D:\software\Anaconda3\envs\py37\lib\subprocess.py”,第1017行, 在 _execute_child 中 启动信息)

FileNotFoundError: [WinError 2] 系统找不到文件 指定

0 个答案:

没有答案