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表示未完成)

  • 相关阅读:
    HTML基础
    JPA+atomikos实现分布式事务
    SpringBoot使用MybatisGenerator操作数据
    Spring data JPA的多数据源实现
    整合Spring Data JPA操作数据及排序分页
    首次git推送到远端
    SpringBoot结合Jpa的post为空和时间问题
    记一次SptingBoot启动报错Error creating bean with name 'requestMappingHandlerAdapter'
    解决IDEA中Cannot resolve table * 的问题
    Sringboot jdbc 操作数据库
  • 原文地址:https://www.cnblogs.com/-9-8/p/8269165.html
Copyright © 2011-2022 走看看