FAQ
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

Search Discussions

  • CTO at May 26, 2009 at 7:09 pm

    On May 26, 2:12?pm, lone_eagle 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
  • Jeff McNeil at May 26, 2009 at 7:16 pm

    On May 26, 2:12?pm, lone_eagle 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
  • Psykeedelik at May 26, 2009 at 9:16 pm

    On May 26, 9:16?pm, Jeff McNeil wrote:
    On May 26, 2:12?pm, lone_eagle 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!!

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedMay 26, '09 at 6:12p
activeMay 26, '09 at 9:16p
posts4
users3
websitepython.org

3 users in discussion

Psykeedelik: 2 posts CTO: 1 post Jeff McNeil: 1 post

People

Translate

site design / logo © 2022 Grokbase