4

Possible Duplicate:
How can I capture the stdout output of a child process?

I'm running a cat-like program in bash from Python:

   import os

   os.system('cat foo.txt')

How do I get the output of the shell command back in the Python script, something like:

   s = somefunction('cat foo.txt')

?

UPD: Here is a related thread.

Community
  • 1
  • 1
Alex
  • 40,671
  • 44
  • 93
  • 126

1 Answers1

17

Use the subprocess module.

from subprocess import Popen, PIPE

(stdout, stderr) = Popen(["cat","foo.txt"], stdout=PIPE).communicate()
print stdout
ismail
  • 43,610
  • 8
  • 84
  • 94