Python中调用外部程序主要是通过两个方法实现的, 一个是 os 库的 system 函数,另外一个是 subprocess 库。
1、os.system( )
使用os.system( )调用其他程序非常方便,把命令行内容作为 system( ) 的参数即可。
比如:我们使用 wget下载 nginx 安装包,如果在命令行执行是这样的
d:\tools\wget http://mirrors.sohu.com/nginx/nginx-1.13.9.zip
在python中调用,就这样写:
import os
cmd = r'd:\tools\wget http://mirrors.sohu.com/nginx/nginx-1.13.9.zip'
os.system(cmd)
print('下载完毕')
细心的同学可能会发现,上面的程序运行的时候, 一直要等到下载完毕, 最后才打印出 '下载完毕' 这句话来。
原来, os.system 函数调用外部程序的时候, 必须要等被调用程序执行结束, 才会接着往下执行代码。 否则就会一直等待。
os.system 函数没法获取 被调用程序输出到终端窗口的内容。 如果需要对被调用程序的输出信息进行处理的话, 可以使用 subprocess 模块
2、subprocess
subprocess 模块提供了 更多的 调用外部程序的功能。
首先ÿ