python类库32[执行外部命令]
1) os.system()
此方法启动新的进程来执行指定的外部命令,但是不能返回外部命令的输出,外部命令任然输出到标准输出。此函数的返回值与所运行的系统有关,在windows系统返回外部命令的返回值,在Linux系统中,返回值与函数wait()类似,进程kill的信号和返回值组成的16位值。
例如:
在windows上执行:
os.system("tasklist")
在Linux上执行:
os.system("ps -aux")
2) os.fork() + os.exec*()
启动新的进程,然后在新进程环境中执行外部程序。os.fork()方法只在Linux环境下有效。一般不常用。
3) os.popen()
启动新的进程,且将外部命令的输出作为文件类型对象返回。不能获得外部命令的返回值。
例如:
output = os.popen("tasklist")
output.read()
4) commands.getstatusoutput() 或 subprocess.popen()
在python2.6前使用commands.getstatusoutput();
在python2.6之后只用subprocess.popen()。
使用subprocess模块可以获得外部命令的输出和返回值,且可以设置等待外部命令结束,还外部命令还可以接受来自管道的输入。
总之,如果只是简单地执行外部命令,可以使用os.system(),但是如果需要更复杂的功能需要获得外部命令的返回值和输出且需要与外部命名交互,则使用subprocess模块。
参考: perl执行外部命令的方法
完!