• 多进程相关


    subprocess

    subprocess模块允许启动一个新进程,并连接到它们的input输入/output输出/error错误管道,从而获取返回值
    在python2.4新增,用于替换os.system、os.popen等

    subprocess模块首推run方法,更高级用法可以直接使用Popen

    run

    说明:
    1、shell=True 指令的参数可以是string或list,当为string时,必须加shell=True
    2、universal_newlines=True 影响的输入与输出的数据格式.默认为False,stdout和stderr的输出是字节序列;True时,stdout和stderr的输出是字符串。

    # 1、在cmd中执行基本指令
    subprocess.run("adb shell input keyevent 4", shell=True)
    
    # 2、获取是否执行成功
    ret = subprocess.run("adb -s " + adb + " " + "exec-out screencap -p > " + pic_now, shell=True)
    if ret.returncode == 0: # 成功时返回0
      pass
    else:
      pass
    
    # 3、获取执行后的输出值
    # 获取最新的相片的名字;默认相片格式为jpg的
    pic_name_bytes = subprocess.run(
        adb_device + "shell ls -t " + src_dir + " " + "| grep '.jpg'| head -n 1",
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        universal_newlines=True).stdout
    

    Popen

    Popen 是 subprocess的核心,子进程的创建和管理都靠它处理。

    args:shell命令,可以是字符串,或者序列类型,如list,tuple。
    bufsize:缓冲区大小,可不用关心
    stdin,stdout,stderr:分别表示程序的标准输入,标准输出及标准错误
    shell:与上面方法中用法相同
    cwd:用于设置子进程的当前目录
    env:用于指定子进程的环境变量。如果env=None,则默认从父进程继承环境变量
    universal_newlines:不同系统的的换行符不同,当该参数设定为true时,则表示使用 作为换行符

    主要用的的参数就是:args、stdin、stdout、stderr、shell(官方推荐shell=False)
     
    2、stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE:
    分别代表标准输入,标准输出,标准错误输出。subprocess.PIPE代表的是管道可以理解成线程
    

    参考链接:
    https://blog.csdn.net/weixin_39059031/category_10163802.html

  • 相关阅读:
    Transact_SQL小手册
    使用泛型的 TArray 从动态数组中查找指定元素
    使用泛型的 TArray 为动态数组排序
    使用 InputBox、InputQuery 的启发
    近况汇报
    泛型排序器 TComparer
    详测 Generics Collections TList (2): First、Last、IndexOf、LastIndexOf
    详测 Generics Collections TList (1): Add、Clear、Count、Capacity
    WindowsAPI: MulDiv
    SendTextMessage 等方便的消息发送函数
  • 原文地址:https://www.cnblogs.com/qev211/p/15234610.html
Copyright © 2020-2023  润新知