1.基本用法
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:James Tao 4 5 import shutil 6 7 #copy文件方法一 8 f1=open('copyshutil.txt',encoding='UTF-8') 9 f2=open('mycopy.txt','w',encoding='UTF-8') 10 shutil.copyfileobj(f1,f2)#copy一个新文件内容与copyshutil相同 11 12 #copy文件方法二 13 shutil.copyfile('copyshutil.txt','mycopy.txt') 14 15 #copy文件所有属性 16 shutil.copystat('copyshutil.txt','mycopy.txt')#必须传入两个已存在的文件,不创建文件 17 18 #同时copy文件和权限 19 shutil.copy('copyshutil.txt','mycopy.txt')#创建一个新文件 20 21 #同时copy文件和状态信息 22 shutil.copy2('copyshutil.txt','mycopy.txt')#创建一个新文件 23 24 #递归地copy文件 25 shutil.copytree('shutilfile','myshutilfile')#创建一个新文件,并将原文件内的所有子文件copy 26 27 #删除目录 28 shutil.rmtree('myshutilfile')
2.压缩文件
创建压缩包并返回文件路径,例如zip、tar
代码格式:shutil.make_archive(base_name,format,root_dir,owner,group,logger)、
base_name:压缩包的文件名,也可以是压缩包的路径
只写文件名base_name:保存至当前路径
写成Users用户123ase_name:保存至Users用户123ase_name
format:压缩包种类:zip,tar,bztar,gztar
root_dir:要压缩的文件夹路径(默认当前目录)
owner:用户,默认当前用户
group:组,默认当前组
logger:用于记录日志,通常是logging.Logging对象
代码:
1 shutil.make_archive('shutil_archive','zip','D:python')#将D:python文件夹压缩保存至当前路径,压缩包名为shutil_archive.zip
运行结果:
压缩文件的过程实际上要调用zipfile模块,例:
1 import zipfile 2 z=zipfile.ZipFile('day5.zip','w')#在当前路径生成一个名字为day5的压缩文件 3 4 z.write('mycopy.txt')#将mycopy.txt压缩进名字为day5的压缩文件 5 z.close()
运行结果: