Pyhton执行shell

来源:互联网 发布:excel可视化数据分析 编辑:程序博客网 时间:2024/06/15 22:23

python调用Shell脚本,有两种方法:os.system(cmd)os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。
1.os.system()

print os.system("ls") #0

2.os.popen(cmd)
os.popen(cmd)会把执行的cmd的输出作为值返回。这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容。
os.popen()可以实现一个“管道”,从这个命令获取的值可以继续被调用。而os.system不同,它只是调用,调用完后自身退出。获取java的进程id:

os.popen("ps -C java | grep -v CMD | awk '{print $1}'").readlines()[0]

3.commands模块
1). commands.getstatusoutput(cmd)
os.popen()执行命令cmd, 然后返回两个元素的元组(status, result). cmd执行的方式是{ cmd ; } 2>&1, 这样返回结果里面就会包含标准输出和标准错误.
2). commands.getoutput(cmd)
只返回执行的结果, 忽略返回值.
3). commands.getstatus(file)
返回ls -ld file执行的结果.

0 0