Getting subprocess.call() output into a string?
Tobiah
toby at tobiah.org
Tue Apr 15 17:03:53 EDT 2008
On Tue, 15 Apr 2008 13:36:11 -0700, Tobiah wrote:
> I am not sure how to capture the output of a command
> using subprocess without creating a temp file. I was
Sorry, I jumped into a secondary level of the
docs, and didn't see it all. I guess I can
use communicate() to get the output.
Still, about StringIO...
> trying this:
>
> import StringIO
> import subprocess
>
> file = StringIO.StringIO()
>
> subprocess.call("ls", stdout = file)
>
> Traceback (most recent call last):
> File "<stdin>", line 6, in ?
> File "/usr/local/lib/python2.4/subprocess.py", line 413, in call
> return Popen(*args, **kwargs).wait()
> File "/usr/local/lib/python2.4/subprocess.py", line 534, in __init__
> (p2cread, p2cwrite,
> File "/usr/local/lib/python2.4/subprocess.py", line 840, in _get_handles
> c2pwrite = stdout.fileno()
> AttributeError: StringIO instance has no attribute 'fileno'
>
> So how do I get the output into a string?
>
> I thought that the idea of StringIO was that it could be
> used where a file was expected.
>
> Thanks,
>
> Toby
> ** Posted from http://www.teranews.com **
** Posted from http://www.teranews.com **
More information about the Python-list
mailing list