python 压缩与解压文件

文件copy模块shutil

高级的文件、文件夹、压缩包处理模块
shutil.copyfileobj() 将文件内容拷贝到另一个文件中
shutil.copyfile() 拷贝文件

import shutil
shutil.copyfileobj(open('day1.py',encoding='utf-8'),open('111.py','w',encoding='utf-8'))
shutil.copyfile('day1.py','123.py')

shutil.copymode() 仅拷贝权限
shutil.copystat() 仅拷贝状态的信息
shutil.copy() 拷贝文件和权限
shutil.copy2() 拷贝文件和转态
shutil.copytree(‘’,’’,ignore=shutil.ingore_patterns(“.py,new”)) 递归地去拷贝文件夹
shutil.rmtree() 递归地去删除文件
shutil.move(A,B) A移动文件到B下
shutil.make_archive(base_name(压缩包的名字或者给一下要保存的路径),format(压缩包的类型:zip,tar,bztar,gztar),root_dir(要压缩的文件夹路径),owner(用户,默认当前用户),group(组,默认当前组),logger(用于记录日志,通常是logging.Logger对象))

import shutil

shutil.make_archive('tang1','zip','../模块')

在这里插入图片描述

Zipfile(压缩与解压)

import zipfile
import os
b = []
a = zipfile.ZipFile("xxx1.zip",'w')
a.write('day2.py')
for roots,dirs,files in os.walk("../函数"): # 遍历这个目录,目录下的每一个文件夹(包含它自己)
,产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】
    for name in files:
        b.append(os.path.join(roots,name)) # 拼接路径+文件名
for i in b:
    a.write(i)
    print(b)
a.close()

# 解压
a = zipfile.ZipFile("xxx1.zip",'r')
a.extractall("tt")

在这里插入图片描述

Tarfile(压缩与解压)

方法与上面类似

import tarfile

a = tarfile.open("a1.tar", "w")
'''
TarFile.add(name, arcname=None, recursive=True, exclude=None, *, filter=None)

将指定文件加入包内。
arcname参数用于变换路径和文件名。
默认情况下,文件夹会被递归的加入包内,除非recursive参数设为False。
filter参数指向一个方法,该方法用来过滤哪些文件不会被打入包内,不被打包的就返回个None,会的就返回tarinfo本身,
该方法为3.2版本新增,同时废弃原有的exclude方法。
'''
a.add('day1.py',arcname='day1___1.py')
a.close()

# 解压
a = tarfile.open("a1.tar", "r")
a.extractall("xx")
a.close()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发酵的西瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值