接上一篇:python自动化运维-基础语法之模块
python内置大量模块,相当于python的类库,运维常用到的有os,shutil,sys,io,time等.
今天要介绍的是最重要的os模块,os(operating system)提供操作系统基础功能,本文只介绍常用的一些方法。
environ,环境变量map,如environ['HOME'],获取用户home目录, 另有操作环境变更的方法: os.getenv(key),os.putenv(key,value)。
os.system(cmd),执行一条命令,如os.system("ls /usr"), 命令的输出同样会返回到当前输出设备, 但命令的返回值是命令的退出状态码。另有方法os.popen(cmd,mode='r', buffering=-1),从一个命令打开一个管道,也是执行一条命令,与os.system的区别是它的返命令执行的结果,popen已经在2.6版废除。这两个方法可在新的subprocess 模块中都有替换命令subprocess.call,Popen。
os.access(path, mode),使用当前的用户检测路径是否可访问或具有某权限,结果返回 True or False。参数:
path -- 要检测的路径;
mode -- 检测模式,os.F_OK路径是否存在,os.R_OK是否可读 ,W_OK是否可写,X_OK是否可执行;os.chdir(path),改变当前工作目录,对应cd命令
os.chmod(path, mode),更改文件或目录的权限,对应chmod命令。参数:
path -- 文件名路径或目录路径
flags -- 可用以下选项按位或操作生成。有多个选项,如:stat.S_IRUSR拥有者具有读权限,stat.S_IWUSR: 拥有者具有写权限,stat.S_IRWXU: 拥有者有全部权限等,多个使用多个使用 "|" 隔开,多选项较多比较难记,所以小篇习惯用os.system("chmod xxx")命令^_^。如果是链接文件请使用os.lchmod(path, mode)os.chown(path, uid, gid),更改文件拥有者,对应chown命令
os.getcwd(),返回当前工作目录
os.mkdir(path[, mode]),以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777
os.makedirs(path, mode=0o777),递归创建目录
os.remove(path),删除文件,如果path 是一个文件夹,将抛出OSError
os.removedirs(path),递归删除目录
os.renames(old, new),递归地对目录进行更名,也可以对文件进行更名
os.open(file, flags[, mode]),打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777,flags选项较多,如:os.O_RDONLY:以只读的方式打开,os.O_WRONLY: 以只写的方式打开,os.O_APPEND: 以追加的方式打开等具体查看官方文档。
os.write(fd, str),写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
os.read(fd, n),从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串
os.close(fd),关闭文件描述符 fd
以上是小篇在运维过程常用到的方法,可以看出其实大多方法都对应着操作系统的命令。
更详细请看官网文档https://docs.python.org/3/library/os.html
本文暂时没有评论,来添加一个吧(●'◡'●)