压缩

def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
                 dry_run=0, owner=None, group=None, logger=None):

base_name:压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,如 data_bak = >保存至当前路径;/ tmp/data_bak = >保存至/tmp/ format:压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir:要压缩的文件夹路径(默认当前目录) owner:用户,默认当前用户
group:组,默认当前组
logger:用于记录日志,通常是logging.Logger对象

import shutil

shutil.make_archive(r'three_\notes\zips','zip',root_dir=r'three_\notes')
print("shutil success")

会在'three_\notes'目录下生成一个后缀为zip的压缩包。

这个模块使用起来个人觉得比前面所讲的ZipFile要便捷一些。看个人需求选择。

其他方法

此处做了解即可,也不是非常重要的内容。要是用在自动化办公,这里就得看看了

拷贝文件和权限

import shutil

shutil.copy('11.txt','111.txt')

拷贝文件和状态信息

import shutil

shutil.copy2('11.txt','111.txt')

仅拷贝权限

内容,组不变,且文件必须存在

import shutil

shutil.copymode('11.txt','111.txt')

仅拷贝状态的信息

import shutil

shutil.copystat('11.txt','111.txt')

拷贝文件

import shutil

shutil.copyfile('11.txt','111.txt')

拷贝文件内容

import shutil

shutil.copyfileobj(open('old.txt', 'r'), open('new.txt', 'w'))