视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
在Python中调用外部命令是什么
2020-11-27 14:09:37 责编:小采
文档


方法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中不包含尾部的换行符。

下载本文
显示全文
专题