python笔记-----打包模块(shutil,zipfile,tarfile)

1.shutil模块

复制删除

 1  1 import shutil
 2  2 shutil.copy('filename', 'test2')      # copy方法
 3  3 
 4  4 f1 = open('filename',encoding='utf-8')   # 复制文件copyfileobj方法
 5  5 f2 = open('f','w',encoding='utf-8')
 6  6 shutil.copyfileobj(f1, f2)
 7  7 
 8  8 
 9  9 shutil.copyfile('filename','test3')      # 复制文件copyfile方法
10 10 shutil.move("test3", "test4")         # 文件的移动和改名
11 11 shutil.copymode('test','test1')           # 权限copy
12 12 shutil.copystat("test","test1")           # 复制文件的状态
13 13 shutil.copy2('test','test1')              # 复制文件和状态
14 14 shutil.copytree('dir1','dir2')        # 递归复制 必须是目录
15 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()

猜你喜欢

转载自www.cnblogs.com/wsy1030/p/9019575.html
今日推荐