python 进程通信

1.概述
这篇文章介绍并行运算中的subprocess模块,subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。
subprocess 它可以用来调用第三方工具(例如:exe、另一个python文件、命令行工具)

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

subprocess 模块提供了了三个 API 处理进程。Python 3.5 中添加的 run() 函数,是一个运行进程高级 API,也可以收集它的输出。call(),check_call() 以及 check_output() 是从 Python2 继承的较早的高级 API。在已存的程序中,它们仍然被广泛支持和使用。
类 Popen 是一个低级 API,用于构建其他的 API 以及用于更复杂的进程交互。Popen 构造函数接受参数设置新进程,以便父进程可以通过管道与它通信。它提供了它替代的模块和函数的所有功能,以及更多功能。
API 对于所有使用场景是一致的,许多之前必要的额外步骤(例如关闭额外的文件描述符并确保通道关闭)现在已经内置了,无需单独代码处理。

subprocess模块的目的在于替换几个旧的模块和方法,替换 os.system(),os.spawnv() , os 和 popen2 模块中 popen 的变体以及 commands() 模块等。为了更容易地将 subprocess 同其他模块比较,本节中的许多示例都重新创建了用于 os 和 popen2 中的。

command = “\”%s\" --m  xxx  --t True \"%s\""   %(yyy,ttt)

t= subprocess.Popen(command, shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,stdin=subprocess.PIPE)

t.stdin.close()

str_output = p.stdout.readlines()

t.wait()

print("str_output = %s"  %str_output)

if str(str_output [len(str_output ) -1], 'utf-8').rstrip() == ''write data ok" :

     print("ok")

你可能感兴趣的:(JTAG_SWD_PyOCD,python编程,python,开发语言)