方法1: os.system
直接使用 os.system("command") 来执行外部程序,返回程序结束返回码(正常0/1错误),这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。
缺点: 不能获取程序输出stdout.不能像PHP的exec(string $command [, array &$output [, int &$return_var ]] )来用数组储存输出stdout.
方法2: os.popen
popen实际是获取命令运行后的输出结果,储存在临时文件当中. 使用命令:
os.popen(command [, mode, bufsize])
实际原理是打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
支持逐行分析如下例代码:
也支持 p.readlines(), for line in p等文件处理方法.
方法3: commands.getstatusoutput
使用命令: status, output = commands.getstatusoutput(command)
实际使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2<&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。
以上就是在Python中调用外部命令是什么的详细内容,更多请关注Work网其它相关文章!