Ian Kelly <ian.g.ke...@gmail.com> writes: > On Tue, Nov 13, 2012 at 11:05 PM, Kushal Kumaran > <kushal.kumaran+pyt...@gmail.com> wrote: >> Or, you could just change the p1's stderr to an io.BytesIO instance. >> Then call p2.communicate *first*. > > This doesn't seem to work. > >>>> b = io.BytesIO() >>>> p = subprocess.Popen(["ls", "-l"], stdout=b) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/usr/lib64/python3.2/subprocess.py", line 711, in __init__ > errread, errwrite) = self._get_handles(stdin, stdout, stderr) > File "/usr/lib64/python3.2/subprocess.py", line 1112, in _get_handles > c2pwrite = stdout.fileno() > io.UnsupportedOperation: fileno > > I think stdout and stderr need to be actual file objects, not just > file-like objects.
Well, well, I was wrong, clearly. I wonder if this is fixable. -- regards, kushal -- http://mail.python.org/mailman/listinfo/python-list