我在python中运行命令行时遇到麻烦。 我正在使用
os.system("cd " + path)
os.system(command)
但是,os.system每次都会打开一个新的控制台。
我应该使用什么课程才能工作? 我如何拦截输出?
谢谢!
答案 0 :(得分:8)
from subprocess import call
call(["ls", "-l"])
subprocess
与system
的优势在于它更灵活。您可以获取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")