当我们需要在 Python 中执行一些本地系统的运行程序时,可以使用 Python 内置的 subprocess 模块进行调用。
以下是调用外部程序的实际步骤:
1.导入 subprocess 模块:
python
import subprocess
2.指定需要调用的外部程序的路径以及执行的参数:
python
cmd = ['program_path', 'arg1', 'arg2', 'arg3']
其中,'program_path' 表示外部程序的路径,'arg1', 'arg2', 'arg3' 表示需要传递给外部程序的参数。
3.使用 subprocess.Popen() 函数执行外部程序:
python
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Popen() 中的 stdout 和 stderr 参数分别表示标准输出和标准错误输出,这里我选择将它们当做管道。
4.通过 result.stdout 或 result.stderr 读取输出结果:
python
output, err = result.communicate()
这里使用 communicate() 方法获取标准输出和标准错误输出,以便后续操作。
下面是两个调用外部程序的示例。
- 示例1:在 Python 中执行 Linux 命令 'ls -l',并将结果输出到控制台
我们可以使用 Linux 命令 'ls -l' 来列出当前目录下的所有文件和文件夹的详细信息,下面是调用该命令的代码示例:
```python
import subprocess
cmd = ['ls', '-l']
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = result.communicate()
print(output.decode())
```
运行输出:
total 8
drwxr-xr-x 5 user staff 160 Sep 1 12:34 folder
-rw-r--r-- 1 user staff 62 Sep 1 12:34 file1.txt
-rw-r--r-- 1 user staff 76 Sep 1 12:34 file2.txt
- 示例2:在 Python 中调用 ffmpeg 实现视频剪切
我们可以使用 ffmpeg 命令来对视频进行剪辑编辑,下面是通过 python 调用 ffmpeg 完成视频剪辑的代码示例:
```python
import subprocess
# 视频剪辑的命令
cmd = ['ffmpeg','-i','input_video.mp4', '-ss', '00:00:02','-t', '00:00:10','-c:v', 'copy','-c:a', 'copy', 'output_video.mp4']
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = result.communicate()
print("剪辑完成!")
```
该示例中,剪辑命令对应的参数和参数含义如下:
-i
: 输入视频文件名-ss
: 开始时间,格式为 HH:MM:SS-t
: 结束时间,格式为 HH:MM:SS-c:v copy
: 编码器和视频数据直接复制,无需重新编码-c:a copy
: 编码器和音频数据直接复制,无需重新编码output_video.mp4
: 输出视频文件名
运行输出:
剪辑完成!
以上就是调用外部程序的实际步骤和两个示例的详细说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python调用外部程序的实操步骤 - Python技术站