【问题标题】:Setting up a python pipeline - python subprocess [duplicate]设置python管道-python子进程[重复]
【发布时间】:2018-08-04 01:52:41
【问题描述】:

使用子进程在 python 中完成以下管道的最佳方法是什么:

  1. 并行运行三个脚本文件python1_a.py、python1_b.py、python1_c.py
  2. 如果没有出现错误,运行 python2.py
  3. 如果没有出现错误,运行 python3.py

我还想通过 argprase 传递参数。

注意:这些文件中有用于显示进度的打印语句 - 记录它们的最佳方式是什么?

如果你能用示例代码回答会很棒

【问题讨论】:

  • 为什么不使用子流程并检查返回码?
  • 好的,你能用 subprocess 的确切代码来回答吗?

标签: python python-2.7


【解决方案1】:

并行运行:

import subprocess

proc = []
for script in (['python1_a.py', 'arg1'], ['python1_b.py', 'arg2'], ['python1_c.py', 'argx']):
    p = subprocess.Popen(script)
    proc.append(p)

for p in proc:
    p.wait() 

然后简单地说:

ret = subprocess.call('python2.py arg1 arg2', shell=True)
if not ret:
    subprocess.call('python3.py arg1 arg2', shell=True)

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2015-10-24
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多