我们这次讲的是利用commands模块履行Linux shell命令,当我们用Python写运维脚本时,常常需要履行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数:
1.commands.getoutput('shell command')
2.commands.getstatus('file')
3.commands.getstatusoutput('shell command')
分别讲授:
1、commands.getoutput('shell command')
履行shell命令,返回结果(string类型)
import commands
commands.getoutput('pwd')
#/Users/admin/PycharmProjects/test
2、commands.getstatus('file')
该函数已被python抛弃,不建议使用,它返回 ls -ld file 的结果(String)(返回结果太奇怪了,难怪被抛弃)
import commands
commands.getstatus('admin.tar')
#'-rw-rw-r-- 1 oracle oracle 829440 Jan 29 10:36 admin.tar'
3、commands.getstatusoutput('shell command')
履行shell命令, 返回两个元素的元组tuple(status, result),status为int类型,result为string类型。
cmd的履行方式是{ cmd ; } 2>&1, 故返回结果包括标准输出和标准毛病。这是用的最多的1个函数。
import commands
commands.getstatusoutput('pwd')
#(0, '/Users/admin/PycharmProjects/test')