Execute Shell Script from Python with multiple pipes Execute Shell Script from Python with multiple pipes shell shell

Execute Shell Script from Python with multiple pipes


You can glue several subprocesses together:

c1 = ['ls']p1 = subprocess.Popen(c1, stdout=subprocess.PIPE)c2 = ['wc']p2 = subprocess.Popen(c2, stdin=p1.stdout,                      stdout=subprocess.PIPE)result = p2.stdout.read()

Notice how we've set the stdin of p2 to be the stdout of p1.

EDIT: simplified the example


Made it! :D Thanks

dom = myserver    c1 = ['/bin/cat', '/etc/xen/%s.cfg' % (str(dom))]p1 = subprocess.Popen(c1, stdout=subprocess.PIPE)c2 = ['grep', 'limited']p2 = subprocess.Popen(c2, stdin=p1.stdout,                  stdout=subprocess.PIPE)c3 = ['cut', '-d=', '-f2']p3 = subprocess.Popen(c3, stdin=p2.stdout,                  stdout=subprocess.PIPE)c4 = ['tr', '-d', '\"']p4 = subprocess.Popen(c4, stdin=p3.stdout,                  stdout=subprocess.PIPE)result = p4.stdout.read()subprocess.call(['/root/bin/xen-limit', str(dom), str(result)])