zoukankan      html  css  js  c++  java
  • subprocess

    # 允许你去创建一个新的子进程让其执行另外的程序,并与它进行通信,获取标准的输入,标准输出,标准错误以及返回码等
    import subproecss
    
    subprocess.run(['df', '-h'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    
    
    stdin,stdout,stderr:分别表示程序的标准输入、标准输出、标准错误。有效的值可以是PIPE,存在的文件描述符,存在的文件对象或None,如果为None需从父进程继承过来,stdout可以是PIPE,表示对子进程创建一个管道,stderr可以是STDOUT,表示标准错误数据应该从应用程序中捕获并作为标准输出流stdout的文件句柄。
    
    subprocess.check_output() #返回的是子程序的执行结果,返回unicode,需要用decode解码,执行错误报CalledProcessError异常错误。
    
    subprocess.check_call() # 命令执行成功返回0,否则抛出subprocess.CalledProcessError异常
    
    subprocess.call(args ,*, stdin=None , stdout=None, stderr=None, shell=False) # 命令执行成功返回0,否则返回非0
    
    shell:表示使用linux shell,默认shell为False,正常情况下传递的命令是字符串列表,如果使用了shell=True,那么传递的命令为字符串,python会首先运行一个shell,再用这个shell来解释整个字符串
    
    subprocess.Popen   # Popen对象创建后,子进程便会运行,Popen类提供了若干方法来控制子进程的运行
    - wait # 等待子进程结束
    - poll # 检查子进程状态
    - kill # 给子进程发送SIGKILL信号终止子进程
    - send_signal   # 向子进程发送信号
    - terminate  # 给子进程发送SIGTERM信号终止子进程
    - communicate  # 与子进程交互
    # 示例
    def execute_cmd(cmd):
      p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
      stdout, stderr = p.communicate()
      if p.returncode != 0:
        return p.returncode, stderr
      return p.returncode, stdout
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    SSIS -->> Data Type
    SSIS ->> Parameter
    Data Flow ->> Term Lookup
    Data Flow ->> Term Extraction
    Data Flow ->> Pivot
    Data Flow ->> OLE Command
    Data Flow ->> Multicast
    Data Flow ->> Union All
    Data Flow ->> Merge
    LeetCode OJ 118. Pascal's Triangle
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14869719.html
Copyright © 2011-2022 走看看