在Linux上的python中os.system('')和commands.getstatusoutput('')之间有什么不同?

时间:2015-01-01 21:52:11

标签: python

Linux上的python中os.system(' ')commands.getstatusoutput(' ')之间的区别是什么?

如果你能举一个例子,我会非常感激。

感谢

1 个答案:

答案 0 :(得分:0)

os.system运行外部shell命令并返回一个整数,该值为0表示成功,任何其他值都失败。如果正在运行的命令将某些内容发送到stdout或stderr,则只会打印它,但您无法将其分配给变量。

command.getstatusoutput做同样的事情"几乎" os.system所做的事情并返回一个元组,其中状态代码integer是第一个元素,状态消息是第二个元素。

在幕后,command.getstatusoutput的做法与os.system不同。它使用os模块。它特别使用os.popen并重定向所有stderr输出以与stdout输出结合,并从stdout读取状态消息。

必须说subprocess模块是执行上述两个命令可以执行的任何操作的新方法。