zoukankan      html  css  js  c++  java
  • subprocess in python3.5

    subprocess 

    该子模块允许你创建新的流程,连接到它们的输入/输出/错误管道,并获取他们的返回值。该模块打算替换多个旧的模块和功能:os.system   和  os.spawn *
    使用subprocess时建议使用run()函数去处理所有它可以处理的情况,因为高级用法可以直接使用底层POPEN接口
    run()函数是Python 3.5中新添加的。
    使用方法:
    subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False)
    args    该参数用于启动进程。这可能是一个列表或一个字符串。

    returncode   该参数表示子进程的退出状态。
    通常情况下,0作为退出状态表明它成功运行。
    负值-N表明子进程被信号N终止(仅POSIX)。

    stdout  该参数表示标准输出
    从子过程中捕获标准输出。一个字节序列,或字符串 ()如果运行一个字符串被称为与universal_newlines = TRUE。无如果stdout没有抓获。

            如果您运行进程与标准错误= subprocess.STDOUT,输出和错误将在此属性相结合,和stderr将是无。

        标准错误

            从子过程中捕获标准错误。一个字节序列,或()如果运行一个字符串被称为与universal_newlines = TRUE。无标准错误,如果没有抓获。

        check_returncode()

            如果返回码不为零,养CalledProcessError。


    先看个例子:
    >>> import subprocess
    >>> subprocess.run(["ls"])
    run_server.py    # ls命令返回的结果
    CompletedProcess(args=['ls'], returncode=0)  # run函数返回的结果
    >>> subprocess.run(["ls", "-l"])  # 这个和上面的类似
    总用量 4
    -rw-r--r-- 1 root root 266 9月  22 14:35 run_server.py
    CompletedProcess(args=['ls', '-l'], returncode=0)

    >>> subprocess.run(["ls"],stdout=subprocess.PIPE)  # 加上stdout参数之后,系统命令返回的结果就不会输出了
    CompletedProcess(args=['ls'], returncode=0, stdout=b'run_server.py ')

    >>> a = subprocess.run(["ls"],stdout=subprocess.PIPE)  
    >>> print(a)
    CompletedProcess(args=['ls'], returncode=0, stdout=b'run_server.py ')
    >>> print(a.stdout,a.args,a.returncode)  # 可以对返回值进行操作
    b'run_server.py ' ['ls'] 0






  • 相关阅读:
    三、LIKE和通配符
    二、SQL基本语法
    一、认识SQL
    修改配置文件:my.ini
    SQL——创建表、更改表、删除表
    SQL——更新和删除
    windows下svn更新ubuntu共享目录,主机拒绝的问题。
    Debian/Ubuntu包安装工具APT的使用
    samba无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
    虚拟机中的ip局域网中其他机子ping不通
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/7047862.html
Copyright © 2011-2022 走看看