python中zipfile的使用_python调用winrar解压

2022-09-30 19:11:37 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

压缩

f=zipfile.ZipFile(file, mode=”r”, compression=ZIP_STORED, allowZip64=False)

创建一个zip文件对象,压缩是需要把mode改为‘w’,这个是源码中的注释Open the ZIP file with mode read “r”, write “w” or append “a”,a为追加压缩,不会清空原来的zip

f.write(filename)

将文件写入zip文件中,即将文件压缩

f.close()

将zip文件对象关闭,与open一样可以使用上下文with as

write有2个可选参数:zipfile.write(‘原文件名’,‘压缩后的文件名’) #第一个是必填,第二个选填

下面放个小demo

代码语言:javascript复制
import zipfile
import os

def zipDir(dirpath,outFullName,name):
    """
    压缩指定文件夹
    :param dirpath: 目标文件夹路径
    :param outFullName: 压缩文件保存路径 xxxx.zip
    :return: 无
    """
    zip = zipfile.ZipFile(outFullName,"a",zipfile.ZIP_DEFLATED)
    for path,dirnames,filenames in os.walk(dirpath):
        # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        fpath = path.replace(dirpath,'')

        for filename in filenames:
            zip.write(os.path.join(path,filename),os.path.join(name fpath,filename))
    zip.close()

压缩整个文件夹:

zipfile模块对“文件夹”的压缩其实是由压缩文件的目录结构实现的,因此可以使用os模块的walk方法进行文件遍历、写入压缩文件。

代码语言:javascript复制
import zipfile,os

with zipfile.ZipFile('aa.zip','w') as target:
    for i in os.walk('aa'):
        for n in i[2]:
            target.write(''.join((i[0],'\',n))) 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192584.html原文链接:https://javaforall.cn

0 人点赞