• 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






  • 相关阅读:
    Python的map、filter、reduce函数 [转]
    CROSS APPLY vs OUTER APPLY
    C# SqlConnection
    Vue中时间的设置
    Entity Framework 应用程序有以下优缺点
    ASP.NET Core学习——3
    面向对象设计原则
    数据结构——HDU1312:Red and Black(DFS)
    数据结构——Currency System in Geraldion
    数据结构——POJ 1686 Lazy Math Instructor 栈的应用
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/7047862.html
Copyright © 2020-2023  润新知