zoukankan      html  css  js  c++  java
  • subprocess模块

    subprocess模块是python从2.4版本开始引入的模块,主要用来取代一些旧的模块,如os.system,

      os.spawn,os.popen等。

    subprocess是通过子进程来执行外部命令的,并且可以自己制定stdin,stdout,stderr等管道。

    内部支持的方法:

    1) call(),只是用来执行一个外部命令,启动的子进程,输入输出自动绑定到父进程的输入和输出(标准输入输出)

      内部的命令,可以是字符串,也可以是list

      a = subprocess.call('pwd')

      a = subprocess.call(['pwd'])

    2) check_call(),与call类似,只是返回值是非0时,会直接抛出异常。0-表示正常执行命令。

      check_output(),类似,但是出现错误时,可以通过try,,,,exception,来避免传递到控制台。

        可以捕获错误到exception中。

    3) 指定管道的执行命令,Popen()函数,参数有:

        args,shell命令,可以是字符串,也可以是list

        bufsize,可以不用关心,主要来指定缓冲区的大小

        stdin,stdout,stderr,指定程序的标准输入,输出,错误输出

        cwd,设置子进程的当前目录

        env,指定子进程的环境变量,默认继承父进程的环境变量。

      a = subprocess.Popen(['mkdir', './hym'], cwd=‘/root’)

      file_handle = open('file', w)    a = subprocess.Popen('ls -l', stdout=filehandle)    指定file_handle

      a  = subprocess.Popen('cat ./file',stdout=subprocess.PIPE)    指定stdout到a对象

    Popen返回的是一个对象,内部实现了commucation(),函数,可以从中拿到,用subprocess.PIPE指定的数据。

    该对象内部的属性,有pid和returncode(0表示已经完成,none表示未完成)

  • 相关阅读:
    codevs1028 花店橱窗布置
    bzoj1497 [NOI2006]最大获利 (最大闭合权图)
    扩展欧几里得算法总结
    codevs1033 蚯蚓的游戏问题
    bzoj1001狼抓兔子
    CSS3中的选择器
    LESS快速入门
    怎样让老浏览器兼容html5新标签
    http与https差异
    css3中的radius
  • 原文地址:https://www.cnblogs.com/-9-8/p/8269165.html
Copyright © 2011-2022 走看看