newbie question about subprocess.Popen() arguments

Alex Naumov alexander_naumov at opensuse.org
Thu May 23 03:40:48 EDT 2013


Thank you very much, Peter!
It works!


On Thu, May 23, 2013 at 9:32 AM, Peter Otten <__peter__ at web.de> wrote:

> Alex Naumov wrote:
>
> > I'm trying to call new process with some parameters. The problem is that
> > the last parameter is a "string" that has a lot of spaces and different
> > symbols like slash and so on. I can save it in file and use name of this
> > file as parameter, but my question is: how to make it without
> additional
> > saving?
> >
> > import subprocess as sp
> >
> > rc = sp.Popen(["prog", "--options", "<", msg], stdin=sp.PIPE,
> > stdout=sp.PIPE)
> > stdout = rc.communicate()[0]
> > print stdout
>
> > p.s.
> > type(msg) => <type 'str'>
>
> The < operator is a shell feature, not an argument, and msg is intended to
> be send to prog's stdin. The communicate() method accepts a parameter for
> that. So:
>
> rc = sp.Popen(["prog", "--options"], stdin=sp.PIPE, stdout=sp.PIPE)
> stdout = rc.communicate(msg)[0]
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130523/39048e81/attachment.html>


More information about the Python-list mailing list