【python】subprocess 使用

subprocess使用

import subprocess
p = subprocess.Popen('ls -l', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=1)
  1. bufsize: 缓冲区大小. 当创建标准流的管道对象时使用默认 -1.
    0: 不使用缓冲区
    1: 表示 行缓冲, 仅当 universal_newlines=True时可用, 也就是文本模式
    正数: 表示缓冲区大小
    负数: 表示使用系统默认的缓冲区大小
    
  2. Popen 对象方法
    1. poll(): 检查进程是否终止: 如果终止返回 returncode, 否则返回 None
    2. wait(): 等待子进程终止
    3. communicate(input,timeout): 和子进程交互, 发送和读取数据.
    4. terminate(): 停止子进程. 发送 SIGTERM信号到子进程
    5. kill(): 杀死子进程. 发送 SIGKILL信号到子进程
    
  3. 实例
    import time
    import subprocess
    
    def cmd(command):
    subp = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")
    subp.wait(2)
    if subp.poll() == 0:
        print(subp.communicate()[1])
    else:
        print("失败")
    
    
    
    cmd("java -version")
    cmd("exit 1")
    
posted @ 2022-12-16 16:08  是阿杰呀  阅读(119)  评论(0)    收藏  举报