如何通过Python执行shell命令

问题描述:

我是Python编程的新手。我想从Python程序执行一个shell命令“at”。任何一位Python大师能帮助我吗?提前致谢。如何通过Python执行shell命令

subprocess该模块可用于这一目的:

import subprocess 
retcode = subprocess.call(["at", "x", "y", "z"]) 

替换xyz与参数at

+0

但是,多年后问这个问题,解决方案会有所不同。此外,这个问题不是关于空间,可能不是Windows。 – JonnyJD 2012-12-19 11:34:26

或者,您可以使用Popen来捕获命令的输出(而不是返回码),而不是使用subprocess.call()。

import subprocess 
process = subprocess.Popen(['at','x','y','z'], stdout=subprocess.PIPE).communicate()[0] 

这可能与at命令不相关,但它对知道有用。 stdin和stderr可以做同样的事情。请查看documentation了解更多详情。

subprocess.check_output似乎是Python 2.4+中的规范便利函数,用于执行命令并检查输出。如果该命令返回一个非零值(表示错误),它也会引发错误。

Like subprocess.callcheck_output是围绕subprocess.Popen的便利包装,因此您可能更愿意直接使用Popen。但是便利包装在理论上是......方便的。