关于shell:在python中,以字符串形式获取系统命令的输出

in python, get the output of system command as a string

本问题已经有最佳答案,请猛点这里访问。

在Python中,我可以使用OS或子进程运行一些系统命令。问题是我不能得到字符串形式的输出。例如:

1
2
3
4
>>> tmp = os.system("ls")
file1 file2
>>> tmp
0

我有一个旧版本的子流程,它没有功能签出,我更喜欢一个不需要更新该模块的解决方案,因为我的代码将在一个我没有完全管理权限的服务器上运行。

这个问题似乎微不足道,但我找不到一个微不足道的解决方案


使用os.popen()

1
tmp = os.popen("ls").read()

更新的方法(>python 2.6)是使用subprocess

1
2
proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
tmp = proc.stdout.read()