import shutil
# copyfileobj(fsrc, fdst, length=16*1024) 将文件内容拷贝到另一个文件,可以设置拷贝长度
# shutil.copyfileobj(open('my.xml','r',encoding='utf-8'),open('you.xml','w',encoding='utf-8'))
# shutil.copyfile('ini','ini2') # 拷贝文件内容
# shutil.copymode('file1','file2') # 拷贝文件权限 ,内容,组,用户均不变
# shutil.copystat('file1','file2') # 拷贝文件状态信息 包括: mode bits,atime,mtime,flags
# shutil.copy('file1','file2') # 拷贝文件和权限
# shutil.copy2('file1','file2') # 拷贝文件和状态信息
# shutil.ignore_patterns 与 shutil.copytree 配合使用
# 递归的去拷贝文件夹,忽视包含的内容(不拷贝包含内容),文件存在,无法拷贝
# shutil.copytree('aaa','bbb',ignore=shutil.ignore_patterns('*.html','*.js'))
# shutil.rmtree('bbb') #递归的删除某文件夹
# shutil.move('you.xml','mycopy.xml') #递归的移动某文件,类似于重命名
# 创建压缩包并返回文件路径 将E:\\pytest3\\lib 打包为aa.zip
# 第一个参数是文件名可以加路径,第二个是打包格式"zip", "tar", "bztar","gztar". 第三个是要打包的路径
# shutil.make_archive('aa','zip','E:\\pytest3\\lib')
#shutil 对压缩包的处理调用的是zipfile,tarfile 两个模块来进行的
# import zipfile
# z = zipfile.ZipFile('aaa.zip','w')
# z.write('ini')
# z.write('my.xml')
# z.close()
# import zipfile
# z = zipfile.ZipFile('aaa.zip', 'r')
# # z.extractall() # 解压全部
# # print(z.namelist())
# z.extract('ini') # 解压单个
# z.close()
import tarfile
# t = tarfile.TarFile('bbb.tar','w')
# t.add('ini') # 第一个参数可以添加路径,默认当前路径,第二个参数可以设置归档文件的别名
# t.add('my.xml')
# t.close()
# t = tarfile.TarFile('bbb.tar','r')
# t.extractall() #解压所有
# # t.extract('ini') #解压指定文件
# t.close()