接上一篇:python自动化运维-常用模块(os)
shutil模块主要提供文件的操作,如复制、移动、打包等功能。
shutil.copyfileobj(fsrc, fdst[, length]),复制文件内容,fsrc源文件描述符,fdst目标文件描述符,length缓存区大小。
shutil.copyfile(src, dst, *, follow_symlinks=True),复制文件内容但不复制文件状态信息和权限,这里的src,dst都是文件路径,区别与上面的文件描述符,follow_symlinks是指链接文件处理方式,如果为False将创建个新的链接文件到目标路径。目标文件没有写权限或与源文件是同一文件时会抛出异常。
shutil.copystat(src,dst),复制所有的状态信息,包括权限,组,用户,时间等。
shutil.copymode(src,dst) ,仅复制权限,不更改文件内容,组和用户。
shutil.copy(src,dst) ,复制文件内容以及权限,先copyfile后copymode,dst如果是目录则复制src到该目录下。
shutil.copy2(src,dst) ,复制文件的内容以及文件的所有状态信息,先copyfile后copystat。
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False),递归复制文件夹里的文件和子文件夹,复制文件内容及状态信息,返回目标文件夹。目标文件夹dst必须是不存在的。
shutil.move(src, dst),递归的移动文件或文件夹,如果目标dst不是文件夹会被覆盖。
shutil.rmtree(path, ignore_errors=False, onerror=None) ,删除文件夹包括里面的文件。
make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None),压缩打包(格式:zip,tar,gztar,bztar等,不同压缩格式需要不同模块支持),返回压缩文件名。base_name压缩文件名,root_dir待压缩文件的上层目录,base_dir要压缩的目录,root_dir和base_dir默认都是当前目录。