Passing string from python programs to external programs

psykeedelik icymist at gmail.com
Tue May 26 23:16:11 CEST 2009


On May 26, 9:16 pm, Jeff McNeil <j... at jmcneil.net> wrote:
> On May 26, 2:12 pm, lone_eagle <icym... at gmail.com> wrote:
>
> > Hi all,
>
> > On Linux, I do something like this
>
> > $ program_to_execute < input_file
> > ... get some output ...
>
> > I have the content of the input_file as a string inside a python
> > program and would like to pass this string to the external program
> > from inside the python program and get back the programs output in a
> > string/file. Can someone tell me how to achieve this. I have been
> > through the documentation for Popen, but this one beats me.
>
> > Cheers,
> > Chaitanya
>
> Sounds like subprocess is what you want.  Here's a quick ad-hoc
> example. You can find more information on the module athttp://docs.python.org/library/subprocess.html.
>
> [GCC 4.3.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.>>> import subprocess
> >>> sub = subprocess.Popen('/bin/gzip', stdin=subprocess.PIPE, stdout=subprocess.PIPE)
> >>> g = sub.communicate('Please, sir, gzip me?')
> >>> import gzip
> >>> import StringIO
> >>> gzip.GzipFile(fileobj=StringIO.StringIO(g[0])).read()
>
> 'Please, sir, gzip me?'
>
>
>
> Thanks,
>
> Jeff
> mcjeff.blogspot.com

Thanks guys!! Problem solved!!



More information about the Python-list mailing list