zoukankan      html  css  js  c++  java
  • Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏

    从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)

    欢迎指正。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    如何用命令将本地项目上传到github
    Mysql基本命令一
    Mysql基本命令二
    PDO操作数据库
    PHP分页
    JQuery中$.ajax()方法参数详解
    基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
    IE浏览器兼容问题
    购物车的实现方式
    JS学习之路
  • 原文地址:https://www.cnblogs.com/paulweihan/p/4660099.html
Copyright © 2011-2022 走看看