Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏
2015-04-13 21:03
771 查看
从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…来检查。
举例来说:
调用C程序时类似,举个复杂点儿的例子,方便大家举一反三:
欢迎指正。
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异常处理 分类: python Raspberry Pi 服务器搭建 2015-04-01 13:22 172人阅读 评论(0) 收藏
- 递归调用输出元素 分类: python 小练习 python基础学习 2013-06-30 11:54 278人阅读 评论(0) 收藏
- python简单的socket 服务器和客户端 分类: socket 2013-08-10 16:44 455人阅读 评论(0) 收藏
- /var/log目录下的20个Linux日志文件功能详解 分类: 服务器搭建 linux内核 Raspberry Pi 2015-03-27 19:15 80人阅读 评论(0) 收藏
- nginx 安装手记 分类: Nginx 服务器搭建 2015-07-14 14:28 15人阅读 评论(0) 收藏
- 继承父类,调用父类中的方法 分类: python 小练习 python基础学习 2014-01-10 17:54 325人阅读 评论(0) 收藏
- 命令行执行python模块时提示ImportError: No module named xxx 分类: python学习 2014-07-24 11:48 868人阅读 评论(0) 收藏
- 定时执行备份 分类: python 小练习 ubuntu 2014-03-19 14:34 224人阅读 评论(0) 收藏
- RedHat Enterprise Linux 6.4使用Centos 6 的yum源 分类: 服务器搭建 Nginx 2015-07-14 14:11 5人阅读 评论(0) 收藏
- Python调用C可执行程序(subprocess)
- UI基础:UI程序执行顺序(UIApplicationMain()函数),自定义视图 分类: iOS学习-UI 2015-07-02 22:09 68人阅读 评论(0) 收藏
- ffmpeg+ffserver搭建流媒体服务器 分类: arm-linux-Ubuntu ffmpeg-SDL-VLC-Live555 TI-AM335X 2015-08-04 09:35 6人阅读 评论(0) 收藏
- 先执行linux的clear清屏命令,再执行其他操作 分类: python 小练习 2013-09-13 11:23 441人阅读 评论(0) 收藏
- 树莓派(raspberry)启用root账户 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:45 95人阅读 评论(0) 收藏
- 利用ssh传输文件 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:47 58人阅读 评论(0) 收藏
- 优化程序结构 分类: divide into python python 小练习 2013-12-30 20:53 229人阅读 评论(0) 收藏
- Nginx介绍 分类: Nginx 服务器搭建 2015-07-13 10:50 19人阅读 评论(0) 收藏
- iOS开发网络篇—搭建本地服务器 分类: ios开发 2015-01-21 19:05 257人阅读 评论(1) 收藏
- python调用shell总结 分类: ubuntu python基础学习 2014-02-26 14:32 261人阅读 评论(0) 收藏
- C#调用其他程序,比如控制别的程序上的按钮 分类: .NET 2012-04-19 16:50 2216人阅读 评论(0) 收藏