![]() |
Passing string from python programs to external programs
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 |
Re: Passing string from python programs to external programs
On May 26, 2:12*pm, lone_eagle <icym...@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 from subprocess import getstatusoutput cmd = 'echo ' str = 'Hello World!' status, output = getstatusoutput(cmd + repr(str)) Obviously, this is 3.x. I believe that in 2.x it was in the commands module. Geremy Condra |
Re: Passing string from python programs to external programs
On May 26, 2:12*pm, lone_eagle <icym...@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 at http://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 |
Re: Passing string from python programs to external programs
On May 26, 9:16*pm, Jeff McNeil <j...@jmcneil.net> wrote:
> On May 26, 2:12*pm, lone_eagle <icym...@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!! |
| All times are GMT. The time now is 03:16 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.