将控制台输出重定向到Python字符串

Ale*_*lex 4 python bash

可能重复:
如何捕获子进程的stdout输出?

我在catPython中使用bash 运行类似程序:

   import os

   os.system('cat foo.txt')
Run Code Online (Sandbox Code Playgroud)

如何在Python脚本中获取shell命令的输出,如:

   s = somefunction('cat foo.txt')
Run Code Online (Sandbox Code Playgroud)

UPD:是一个相关的主题.

ism*_*ail 16

使用子进程模块.

from subprocess import Popen, PIPE

(stdout, stderr) = Popen(["cat","foo.txt"], stdout=PIPE).communicate()
print stdout
Run Code Online (Sandbox Code Playgroud)