In article <[EMAIL PROTECTED]>,
Fredrik Lundh  <[EMAIL PROTECTED]> wrote:
>Cameron Laird wrote:
>
>> Your interactive session does indeed exhibit the behavior that
>> puzzles me.  My expectation was that StringIO and the std* 
>> parameters to Popen() were made for each other; certainly there
>> are many cases where stdout and stderr can be redirected *to* a
>> StringIO.  Is it simply the case that stdin demands a more
>> file-like object?  While that disappoints me, I certainly can
>> program around it.  My question, then:  does stdin effectively
>> require something really in the filesystem, or perhaps the
>> stdout of a previous subprocess?  Is there no built-in way to
>> feed it an in-memory construct?
>
>set the appropriate stream to subprocess.PIPE, and write to it.
>
>    p = subprocess.Popen(..., stdin=subprocess.PIPE)
>    p.stdin.write("hello")
>    p.stdin.close() # signal end of file
                        .
                        .
                        .
Of course!  My; it's a sign of how far I was from the right
subprocess mentality that I so missed what is obvious after
the fact.  The source code (for the 2.4 release) also comes
close to making it clear, as I realized about the time you
posted your follow-up, Fredrik.

Is this--streaming data to a subprocess--too lightweight to
deserve write-up in the (online) Cookbook?  I'll volunteer.
In retrospect, I see there are plenty of examples on-line
of the usage, but I don't think an ignorant searcher (like
me) will find them on his own.

Thanks, Fredrik.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to