python中运维应用及difflib模块

一. shutil 模块

1. 文件操作

shutil模块简单来说是用来复制、归档文件和目录

1> shutil.copyfile(src,dst) 复制一个文件

2>shutil.copymod(src,dst) 复制文件权限 , 将文件权限同步到其他文件

3>shutil.copy(src,dst) 源必须是文件,但是 dst 可以是文件或者目录

4>shutil.copy2(src,dst) 与 copy 类似,但是源数据也会复制,类似cp -p 命令,将权限 , 时间戳等源数据也复制过去

5>shutil.copytree(src,dst) 以copy2 的方式递归复制一个目录

6>shutil.rmtree(path) 递归删除一个目录

2. 打包压缩

python中运维应用及difflib模块

shutil.make_archive(base_name, format, root_dir=None,base_dir=None)

base_name: 打包后的文件名称

format:打包格式

root_dir:压缩的根目录

base_dir:开始压缩的目录

注:root_dir 和 base_dir 默认都是当前目录

二. difflib 模块

1. 文件差异对比

方法一:

python中运维应用及difflib模块

注:

'-' 包含在第一个中,但不包含在第二个中

'+' 包含在第二个中,但不包含在第一个中

' ' 两者相同

'?' 两个存在增量差异

'^' 标志出两者行存在的差异字符

方法二:

python中运维应用及difflib模块

eg:比较两个文件,通过html页面显示两个配置文件之间的差异

python中运维应用及difflib模块

测试:

python中运维应用及difflib模块