Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #45783
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Subject | Re: newbie question about subprocess.Popen() arguments |
| Date | 2013-05-23 09:32 +0200 |
| Organization | None |
| References | <CABPy6+wGwvkyrq06k87hZfDO2-bNxsw72RNKyDq9hng_QwNPVw@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.2000.1369294348.3114.python-list@python.org> (permalink) |
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]
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: newbie question about subprocess.Popen() arguments Peter Otten <__peter__@web.de> - 2013-05-23 09:32 +0200
csiph-web