python3实现的zip格式压缩文件夹操作示例
作者:dou_being 发布时间:2023-07-31 18:17:48
标签:python3,zip格式,压缩文件夹
本文实例讲述了python3实现的zip格式压缩文件夹操作。分享给大家供大家参考,具体如下:
思路:先把第一级目录中的文件进行遍历,如果是文件,则把它连同当前路径一起加入result(list),如果是子目录,则在整个目录上继续深度优先遍历,直到所有的文件都被加入。主要使用python3中zipfile模块:
class zipfile.ZipFile(file [,mode [,compression [,allowZip64 ] ] ] )
参数说明:
1.第一个参数file可以是文件(字符串)的路径,也可以是类文件对象
2.第二个参数mode模式参数可以是'r'读取现有的文件,'w'以截断并写入一个新的文件,或'a'将追加到现有文件。如果mode是'a'和file引用现有的ZIP文件,则会向其中添加其他文件,如果文件未引用ZIP文件,则会将新的ZIP存档附加到该文件,这用于将ZIP存档添加到另一个文件
3.第三个参数compression是编写存档时使用的ZIP压缩方法,可以是ZIP_STORED或ZIP_DEFLATED
Demo:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import zipfile
def get_zip_file(input_path, result):
"""
对目录进行深度优先遍历
:param input_path:
:param result:
:return:
"""
files = os.listdir(input_path)
for file in files:
if os.path.isdir(input_path + '/' + file):
get_zip_file(input_path + '/' + file, result)
else:
result.append(input_path + '/' + file)
def zip_file_path(input_path, output_path, output_name):
"""
压缩文件
:param input_path: 压缩的文件夹路径
:param output_path: 解压(输出)的路径
:param output_name: 压缩包名称
:return:
"""
f = zipfile.ZipFile(output_path + '/' + output_name, 'w', zipfile.ZIP_DEFLATED)
filelists = []
get_zip_file(input_path, filelists)
for file in filelists:
f.write(file)
# 调用了close方法才会保证完成压缩
f.close()
return output_path + r"/" + output_name
if __name__ == '__main__':
zip_file_path(r"./testing", 'F:', '123.zip')
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/dou_being/article/details/81546172
0
投稿
猜你喜欢
- 重置oracle序列从指定数字开始 代码如下:declare n number(10); v_startnum number(10):=1
- 本文实例讲述了php实现的美国50个州选择列表。分享给大家供大家参考。具体如下:这里展示的是php生成的美国50个州的选择列表,自动选择当前
- 方法一:<code class="language-python">""" 根
- pip是什么其实,pip就是 Python标准库(The Python Standard Library)中的一个包,这个包比较特殊,用它可
- 这篇文章主要介绍了python列表推导式入门学习解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 么是约瑟夫问题?约瑟夫问题是一个有趣的数学游戏,游戏规则如下:1、N个人围成一个圈,编号从1开始,依次到N。2、编号为M的游戏参与者开始报数
- IP字段截取,判断访问者ip,根据ip来显示不同图片,很简单的程序<%ip=request.servervariables("
- 新手,虽然比较简单的东西,但是弄了我很久。很多不完善的地方,比如锁定用户,同一用户输入错三次密码就会锁定,但是如果在第二第三次换了用户再输入
- Pygame精灵和碰撞检测今天来看看python最出名的游戏库pygame。学习两个名词:精灵和碰撞检测。精灵英文字母是Sprite。Spr
- 简介Pycharm安装以后必须激活后,才能正常的使用。否则就不能使用。激活PyCharm1、Activation code激活优点:Wind
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。EOF 指示当前记录位置位于 Recordset 对象的最后一个记录
- 实现二维平面上散点的绘制,并可以给每个散点标记序号或者名称:import numpy as npimport matplotlib.pypl
- 笔者需要tensorflow仅运行在一个GPU上(机器本身有多GPU),而且需要依据系统参数动态调节,故无法简单使用CUDA_VISIBLE
- JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript
- 有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。P3P是什么P3P(Platform for Privacy
- 这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 在 JavaScript 中,可以用 instanceof 来判断一个对象是不是某个类或其子类的实例。比如:// 代码
- 今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦!我们先来看看
- 原文地址:How to write Dockerfiles for Python Web Apps原文作者:Praveen Durairaj
- <%dim ylj,ywj,Mlpath,Shell,rarcomm,RetCode,cmd,comm,fsoM