python笔记07-----打包模块(shutil,zipfile,tarfile)
1.shutil模块
复制删除
1 import shutil 2 shutil.copy('filename', 'test2') # copy方法 3 4 f1 = open('filename',encoding='utf-8') # 复制文件copyfileobj方法 5 f2 = open('f','w',encoding='utf-8') 6 shutil.copyfileobj(f1, f2) 7 8 9 shutil.copyfile('filename','test3') # 复制文件copyfile方法 10 shutil.move("test3", "test4") # 文件的移动和改名 11 shutil.copymode('test','test1') # 权限copy 12 shutil.copystat("test","test1") # 复制文件的状态 13 shutil.copy2('test','test1') # 复制文件和状态 14 shutil.copytree('dir1','dir2') # 递归复制 必须是目录 15 shutil.rmtree('dir1') # 删除目录 多个用逗号分隔
打压缩包
shutil.make_archive(‘base_name’,’format’,’root_dir’)
base_name:压缩包的文件名,也可以使压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径
format:压缩包种类,”zip”,”tar”,”bztar”,”gztar”
root_dir:要压缩的文件夹路径(默认当前目录)
owner:用户 默认当前
group:组,默认当前
logger:用于记录日志,通常是logging.Logger对象
1 import shutil
2 import os
3 dir = os.path.exists(r'/data/') #判断目录是否存在
4 if dir == False: #如果不存在
5 os.makedirs('/data/1/2/') #创建目录
6 shutil.make_archive("data", "gztar", "/data/") #打成tar.gz包
解包和其他方法
unpack_archive()
功能:解包操作
格式:shutil.unpack_archive('归档文件路径','解包目标文件夹')
返回值:None
注意:文件夹不存在会新建文件夹
get_archive_formats()
功能:获取当前系统已注册的归档文件格式(后缀)
格式:shutil.get_archive_formats()
返回值:列表 [(后缀,解释),(后缀,解释),(后缀,解释)...]
get_unpack_formats()
功能:获取当前系统已经注册的解包文件格式(后缀)
格式:shutil.get_unpack_formats()
返回值:列表 [(后缀,解释),(后缀,解释),(后缀,解释)...]
2.zipfile模块 -单独压缩/解压文件
压缩
1 import zipfile 2 z = zipfile.ZipFile("d5.zip", "w") 3 z.write("笔记3") 4 z.write("笔记2") 5 z.close()
解压
1 z = zipfile.ZipFile("d5.zip", "r") 2 z.extractall("d5.zip", "C:\\") 3 z.close()
3
.tarfile模块
压缩
1 import tarfile 2 tar = tarfile.open('tarname.tar','w') #tarname.tar 是压缩后的文件名 3 tar.add('test11', arcname='name.zip') #test11 是存在的目录,arcname可以不加 4 tar.close()
解压
1 import tarfile 2 tar = tarfile.open('C:\\tarname.tar','r') 3 tar.extractall('.') #可设置地址 4 tar.close()