Python Forum

Full Version: run_pipe_line
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
last year i posted a 22 line version of a function to run a pipeline of multiple commands.

today i am posting a much shorter version with only 10 lines.

pipecmds.py
import subprocess
def pipecmds(*cmds,**opts):
    if not cmds:
        return
    p = []
    for cmd in cmds[:-1]:
        p.append(subprocess.Popen(cmd,stdout=subprocess.PIPE,**opts))
        opts['stdin']=p[-1].stdout
    p.append(subprocess.Popen(cmds[-1],**opts))
    return [x.wait() for x in p]
this function takes a list of the command argument strings in each function call argument for as many commands you want to run in a pipeline up to the maximum resources your hardware, system, or system administrator allows. you may use a tuple in place of any list.

if you saved the old 22 line version, please replace it or augment it with this new 10 line version.