码迷,mamicode.com
首页 > 编程语言 > 详细

Python调用C可执行程序(subprocess)

时间:2015-04-14 08:37:45      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:python   命令   管道   调用   c   

从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如
os.system、os.spawn、os.popen、popen2、commands.
不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息。

subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。
subprocess.call()

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

父进程等待子进程完成
返回退出信息(returncode,相当于Linux exit code)
subprocess.check_call()

subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

父进程等待子进程完成
返回0
检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含有returncode属性,可用try…except…来检查
subprocess.check_output()

subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)

父进程等待子进程完成
返回子进程向标准输出的输出结果
检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含有returncode属性和output属性,output属性为标准输出的输出结果,可用try…except…来检查。

举例来说:

import subprocess

result = subprocess.check_output("ls","-al",shell=Fault(默认))

result = subprocess.check_output("ls -al",shell=True)

调用C程序时类似,举个复杂点儿的例子,方便大家举一反三:

result = subprocess.check_output("/home/pi/mjpg/mjpg-streamer -i ‘input_uvc.so -d /dev/video0 -r 1920x720‘ -o ‘output_file.so -f /home/pi/data/cam0/ -s 1‘",shell=True)

欢迎指正。

Python调用C可执行程序(subprocess)

标签:python   命令   管道   调用   c   

原文地址:http://blog.csdn.net/paul_c_v/article/details/45031853

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!