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)])