zoukankan      html  css  js  c++  java
  • subprocess

    subprocess

    subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值

    subprocess 模块首先推荐使用的是它的 run 方法,更高级的用法可以直接使用 Popen 接口

    run

    subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)
    

    popen类

    subprocess模块定义了一个Popen类,通过它可以创建进程,并与其进行复杂的交互。

    class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, 
    preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, 
    startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False, pass_fds=(),
    *, encoding=None, errors=None)
    
    • args:shell命令,可以是字符串或者序列类型(如:list,元组)
    • bufsize:缓冲区大小。当创建标准流的管道对象时使用,默认-1。
      0:不使用缓冲区
      1:表示行缓冲,仅当universal_newlines=True时可用,也就是文本模式
      正数:表示缓冲区大小
      负数:表示使用系统默认的缓冲区大小。
    • stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄
    • preexec_fn:只在 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用
    • shell:如果该参数为 True,将通过操作系统的 shell 执行指定的命令。
    • cwd:用于设置子进程的当前目录。
    • env:用于指定子进程的环境变量。如果 env = None,子进程的环境变量将从父进程中继承
    import subprocess
    subprocess.Popen('ls -l', shell=True)
    

    Popen 对象方法

    • poll(): 检查进程是否终止,如果终止返回 returncode,否则返回 None。
    • wait(timeout): 等待子进程终止。
    • communicate(input,timeout): 和子进程交互,发送和读取数据。
    • send_signal(singnal): 发送信号到子进程 。
    • terminate(): 停止子进程,也就是发送SIGTERM信号到子进程。
    • kill(): 杀死子进程。发送 SIGKILL 信号到子进程
  • 相关阅读:
    HDU 1025 Constructing Roads In JGShining's Kingdom (DP+二分)
    HDU 1158 Employment Planning
    HDU 2059 龟兔赛跑
    Csharp 简单操作Word模板文件
    Csharp windowform datagridview Clipboard TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據
    Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode
    Csharp windowform controls clear
    CSS DIV大图片右上角叠加小图片
    Csharp DataGridView自定义添加DateTimePicker控件日期列
    Csharp 打印Word文件默認打印機或選擇打印機設置代碼
  • 原文地址:https://www.cnblogs.com/kai-/p/11889251.html
Copyright © 2011-2022 走看看