1

我在 python 中运行命令行时遇到问题。我目前正在使用

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

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

我应该使用什么类来工作?如何拦截输出?

谢谢 !

4

3 回答 3

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

subprocessvs的优点system是更灵活。您可以获得标准输出、标准错误、“真实”状态码、更好的错误处理等。

另外,请查看Python 文档

于 2013-01-04T23:49:09.563 回答
1

要解决上述问题:

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

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

由于您使用的是 python 1.7:

output=os.popen(command,"r").readlines()
于 2013-01-04T23:49:05.507 回答
0

我总是使用 os.chdir("dirname") 这个功能可以像 cd 功能一样工作,所以你可以同时 os.chdir("dir_thats_right_here") 使用 os.chdir("/dir/thats/far/away")

于 2013-01-05T03:52:43.173 回答