1.shutil模块
复制删除
import shutil
shutil.copy('filename', 'test2') # copy方法 f1 = open('filename',encoding='utf-8') # 复制文件copyfileobj方法
f2 = open('f','w',encoding='utf-8')
shutil.copyfileobj(f1, f2) shutil.copyfile('filename','test3') # 复制文件copyfile方法
shutil.move("test3", "test4") # 文件的移动和改名
shutil.copymode('test','test1') # 权限copy
shutil.copystat("test","test1") # 复制文件的状态
shutil.copy2('test','test1') # 复制文件和状态
shutil.copytree('dir1','dir2') # 递归复制 必须是目录
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模块 -单独压缩/解压文件
压缩
import zipfile
z = zipfile.ZipFile("d5.zip", "w")
z.write("笔记3")
z.write("笔记2")
z.close()
解压
z = zipfile.ZipFile("d5.zip", "r")
z.extractall("d5.zip", "C:\\")
z.close()
3
.tarfile模块
压缩
import tarfile
tar = tarfile.open('tarname.tar','w') #tarname.tar 是压缩后的文件名
tar.add('test11', arcname='name.zip') #test11 是存在的目录,arcname可以不加
tar.close()
解压
import tarfile
tar = tarfile.open('C:\\tarname.tar','r')
tar.extractall('.') #可设置地址
tar.close()