python如何压缩新文件到已有ZIP文件

yipeiwu_com6年前Python基础

本文为大家分享了python压缩新文件到已有ZIP文件的具体代码,供大家参考,具体内容如下

要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内容。

from zipfile import ZipFile
from os import listdir
from os.path import isfile, isdir, join

def addFileIntoZipfile(srcDir, fp):
 #遍历该文件夹中所有文件
 for subpath in listdir(srcDir):
 subpath = join(srcDir, subpath)
 if isfile(subpath):
  #如果是文件就直接压缩到ZIP文件
  fp.write(subpath)
 elif isdir(subpath):
  #如果是子文件夹就先写入子文件夹名
  #然后再递归调用函数
  #把所有文件都压缩进入ZIP文件
  fp.write(subpath)
  addFileIntoZipfile(subpath, fp)

def zipCompress(srcDir, desZipfile):
 with ZipFile(desZipfile, mode='a') as fp:
 addFileIntoZipfile(srcDir, fp)

#测试函数功能
paths = [r'C:\python34\Scripts', r'C:\python34\Dlls', r'c:\eclipse']
for path in paths:
 zipCompress(path, 'test.zip') 

来源:python小屋

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现微信自动回复及批量添加好友功能

先给大家介绍下python微信自动回复功能 1.当收到好友消息时,自动回复 import random import itchat import requests import ti...

理解python中生成器用法

生成器(generator)概念 生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。 生成器语法 生成器表达...

python实现高斯投影正反算方式

使用Python实现了一下我们同事的C++高斯投影正反算,实际跑通,可用。 #!/ usr/bin/python # -*- coding:utf-8 -*- import mat...

三步实现Django Paginator分页的方法

三步实现Django Paginator分页的方法

Django提供了一个新的类来帮助管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。本文将分三步介绍Django Pag...

不管你的Python报什么错,用这个模块就能正常运行

不管你的Python报什么错,用这个模块就能正常运行

Fucklt.py 使用了最先进的技术能够使你的代码不管里面有什么样的错误,你只管 FuckIt,程序就能"正常"执行,兵来将挡水来土掩。 是不是感觉很不讲道理,这样还担心自己的代码不能...