python 调取 shell 命令的几种方法

os.system()
无法获得到输出和返回值

os.popen()
output = os.popen('cat /proc/cpuinfo')
print output.read()
返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出,读取不了返回值

commands.getstatusoutput()
以数组形式返回 返回值和执行命令的标准输出。还可单独返回 commands.getstatus和commands.getoutput。

subprocess.*()
从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息
详细使用:http://www.jb51.net/article/48086.htm

原文地址:https://www.cnblogs.com/zimufeng/p/5253656.html