在python中运行命令行

时间:2013-01-04 23:47:49

标签: python

我在python中运行命令行时遇到麻烦。 我正在使用

os.system("cd " + path)
os.system(command)

但是,os.system每次都会打开一个新的控制台。

我应该使用什么课程才能工作? 我如何拦截输出?

谢谢!

3 个答案:

答案 0 :(得分:8)

from subprocess import call
call(["ls", "-l"])

subprocesssystem的优势在于它更灵活。您可以获取stdout,stderr,“真实”状态代码,更好的错误处理等。

另外,请查看the Python docs

答案 1 :(得分:1)

要解决上述问题:

os.chdir(path)
os.system(command)

要捕获数据,我会查看子进程:http://docs.python.org/2/library/subprocess.html

因为你使用的是python 1.7:

output=os.popen(command,"r").readlines()

答案 2 :(得分:0)

我总是使用 os.chdir("dirname") 此功能可以像cd功能一样工作,因此您可以同时执行 os.chdir("dir_thats_right_here") os.chdir("/dir/thats/far/away")