• (常用)subprocess模块 详情官方


    subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。
    另外subprocess还提供了一些管理标准流(standard stream)管道(pipe)的工具,从而在进程间使用文本通信
    #windows下:
    # dir | findstr 'test*'
    # dir | findstr 'txt$'
    在一些复杂场景中,我们需要将一个进程的执行输出作为另一个进程的输入。在另一些场景中,我们需要先进入到某个输入环境,然后再执行一系列的指令等。
    这个时候我们就需要使用到suprocess的Popen()方法。该方法有以下参数:
       args:shell命令,可以是字符串,或者序列类型,如list,tuple。
       bufsize:缓冲区大小,可不用关心
       stdin,stdout,stderr:分别表示程序的标准输入,标准输出及标准错误
       shell:参数为False时,命令需要通过列表的方式传入,当shell为True时,可直接传入命令.
       cwd:用于设置子进程的当前目录
       env:用于指定子进程的环境变量。如果env=None,则默认从父进程继承环境变量
       universal_newlines:不同系统的的换行符不同,当该参数设定为true时,则表示使用 作为换行符
    import subprocess
    res1=subprocess.Popen(r'dir C:UsersAdministratorPycharmProjects est函数备课',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    res=subprocess.Popen('findstr test*',shell=True,stdin=res1.stdout,stdout=subprocess.PIPE)
    print(res.stdout.read().decode('gbk')) #subprocess使用当前系统默认编码,得到结果为bytes类型,在windows下需要用gbk解码
    print(res.stderr.read().decode('gbk'))
  • 相关阅读:
    dede标签:定义文件夹
    SendCloud邮件中为什么会显示代发
    中国天气网天气预报接口api
    话说TP框架里的Vendor这目录是干什么用的啊?类库扩展thinkphp3.1版本
    微信公众号tp3.2放进Model无效,几种实例化的方法试过,还是提示无法提供服务...
    WCF服务编程读书笔记(5):操作
    spingmvc relevent article
    testng
    sts 配置
    一个spring mvc 的例子,带源码的,
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/9475548.html
Copyright © 2020-2023  润新知