''' A.shutil:高级的文件 文件夹 压缩包 处理模块 ''' import shutil ''' 1.copyfileobj(a1,a2,lenth):将文件内容拷贝到另一个文件中 ''' shutil.copyfileobj(open('old.xml','r'),open('new.xml','w'),1) ''' 2.copyfile(a1,a2):拷贝文件 ''' shutil.copyfile('new.xml','new2.xml') ''' 3.copymode(a1,a2):拷贝文件,仅拷贝权限,内容,组,用户不变 ''' shutil.copymode('new.xml','new3.xml') ''' 4.copystat(a1,a2):拷贝状态信息 ''' shutil.copystat('new.xml','new3.xml') ''' 5.copy(a1,a2):拷贝文件内容和权限 ''' shutil.copy('new.xml','new4.xml') ''' 6.copy2(a1,a2):拷贝文件内容和状态 ''' shutil.copy2('new.xml','new5.xml') ''' *7.copytree(a,b,symlinks=False, ignore=None):递归去拷贝文件夹,abs是文件夹,symlinks=False时为拷贝快捷方式,symlinks=True时,拷贝的是原文件夹 ignore=shutil.ignore_patterns('*.pyc','tmp'):忽略拷贝以'*.pyc','tmp'结尾和开头的文件 ''' #shutil.copytree('a','b',ignore=shutil.ignore_patterns('*.pyc','tmp')) ''' 8.rmtree(path):递归的去删除文件夹 ''' #shutil.rmtree('c') ''' 9.move(a,b):递归去移动文件,类似于mv命令,其实就是重命名 ''' #shutil.move('a','c') ''' B.make_archive:创建压缩文件 xx.make_archive(base_name, format, ...) 创建压缩包并返回文件路径,例如:zip、tar 创建压缩包并返回文件路径,例如:zip、tar base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, 如:www = > 保存至当前路径 format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” root_dir: 要压缩的文件夹路径(默认当前目录) owner: 用户,默认当前用户 group: 组,默认当前组 logger: 用于记录日志,通常是logging.Logger对象 ''' # 将 D:\1122 下的文件打包放置当前程序目录 ret = shutil.make_archive("xxx",'gztar',root_dir='D:\\1122') # 将 D:\1122下的文件打包放置 D:\1122目录 ret = shutil.make_archive("D:\\1122\\xxx",'gztar',root_dir='D:\\1122') ''' C.zipfile解压缩文件 ''' import zipfile # z=zipfile.ZipFile('xx.zip','w') # z.write('ini') # z.write('new2.xml') # z.close() #解压 z=zipfile.ZipFile('xx.zip','r') z.extractall() print(z.namelist()) #压缩包中的文件列表 #解压 z.extract('ini') z.close() ''' D.tarfile:解压缩 ''' import tarfile #压缩 tar=tarfile.open('xxx.tar','w') tar.add('ini',arcname='init') tar.add('new2.xml',arcname='new22.xml') tar.close() #解压 tar=tarfile.open('xxx.tar','r') #tar.extractall() print(tar.getmembers()) tar.extract('init') tar.close()