Python是基于C语言编写的和操作系统很贴近,这似乎是所有脚本语言的特点。所以在脚本语言之中经常需要调用系统命令。
Python调用系统命令的接口主要有三个:os.system(),os.popen(),commands
1.os.system()
result = os.system('cat /proc/cpuinfo') #linux
result = os.system('ipconfig') #windows
输出是直接输出到控制台的,返回值就是命令执行的退出码。
2.os.popen
output = os.popen('cat /proc/cpuinfo')
print output.read()
output.close()
popen打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是'r')。
如果mode为'r',可以对output当做文件来处理(read(),readline())。
注意使用这个函数的时候返回的是文件对象,需要调用output.close()
3.commands.getstatusoutput()
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output
output.close()
command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。
对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。
注意output中将换行符写成'\n'。