【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 @   是阿杰呀  阅读(104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示