import os
import subprocess
r, w = os.pipe()
with subprocess.Popen(['bash', '-c', '''for i in 1 2 3 4
do
echo $i >&{}
echo "$$: $i"
done
exit 1'''.format(w)], pass_fds=[w]) as p, open(r) as f:
os.close(w)
for i in map(str.rstrip, f):
print('{}: {}'.format(os.getpid(), i))
print('done: {}'.format(p.returncode))