Python文件的压缩与解压
作者:浅若清风cyf? 发布时间:2023-09-01 08:17:23
标签:Python文件,压缩,解压
前言:
Python在人工智能,后台服务等领域中得到了广泛应用。由于python有着大量的第三方开源包以及其易用的语言特性,这门语言在数据处理、批处理等方法具有强大的优势,使用起来相当便捷。本文为大家带来的是使用Python进行文件、文件夹压缩与解压,用到的是zipfile的第三方依赖库。根据不同应用场景封装了几个方法,方便根据实际需要使用相应的方法,能够筛选出需要压缩的文件。
安装:
pip install zipfile
代码:
1、压缩整个文件夹
import zipfile
import os
from tqdm import tqdm
def zip_file(src_dir, save_name='default'):
'''
压缩文件夹下所有文件及文件夹
默认压缩文件名:文件夹名
默认压缩文件路径:文件夹上层目录
'''
if save_name == 'default':
zip_name = src_dir + '.zip'
else:
if save_name is None or save_name == '':
zip_name = src_dir + '.zip'
else:
zip_name = save_name + '.zip'
z = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)
for dirpath, dirnames, filenames in os.walk(src_dir):
fpath = dirpath.replace(src_dir, '')
fpath = fpath and fpath + os.sep or ''
for filename in filenames:
z.write(os.path.join(dirpath, filename), fpath + filename)
z.close()
return True
2、压缩指定扩展名文件
def zip_file_by_extension(src_dir, extension='dll', save_name='default'):
'''
根据文件扩展名筛选需要压缩的文件到压缩包
注:针对单层目录情况,文件夹下的子文件不会被压缩
'''
if save_name == 'default':
zip_name = src_dir + '.zip'
else:
if save_name is None or save_name == '':
zip_name = src_dir + '.zip'
else:
zip_name = save_name + '.zip'
z = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)
file_list = os.listdir(src_dir)
for filename in tqdm(file_list):
if not os.path.isfile(os.path.join(src_dir, filename)):
continue
if filename.split('.')[-1] == extension:
print(r'正在压缩文件:', filename, end='')
z.write(os.path.join(src_dir, filename), filename)
z.close()
return True
3、获取指定类型的待压缩文件列表
def get_zip_file_list(src_dir, extension='dll'):
'''
获取需要压缩的文件列表
'''
file_list = os.listdir(src_dir)
zip_list = []
for filename in file_list:
if not os.path.isfile(os.path.join(src_dir, filename)):
continue
if filename.split('.')[-1] == extension:
zip_list.append(filename)
print(zip_list)
4、解压文件
def unzip_file(zip_src, dst_dir):
'''
解压缩
'''
r = zipfile.is_zipfile(zip_src)
if r:
fz = zipfile.ZipFile(zip_src, 'r')
for file in fz.namelist():
fz.extract(file, dst_dir)
else:
print('This is not zip')
return False
return True
来源:https://juejin.cn/post/7085611772018688008
0
投稿
猜你喜欢
- 什么是浮动?浮动是 css 的定位属性。我们可以看一下印刷设计来了解它的起源和作用。印刷布局中,文本可以按照需要围绕图片。一般把这种方式称为
- tensorflow官方提供了3种方法来读取数据:预加载数据(preloaded data):在TensorFlow图中定义常量或变量来保存
- 测试环境Python 3.6Win10代码实现#!/usr/bin/env python 3.4.0#-*- encoding:utf-8
- 1.导入依赖包import ( "github.com/spf13/viper")2.编写ya
- 异常是指因为程序出现了错误而在正常控制流以外采取的行动,其分为两个阶段,第一阶段是引发异常的错误,当系统检测到错误并且意识到异常条件,解释器
- 一,进程的理论基础一个应用程序,归根结底是一堆代码,是静态的,而进程才是执行中的程序,在一个程序运行的时候会有多个进程并发执行。进程和线程的
- pandas基于numpy,所以其中的空值nan和numpy.nan是等价的。numpy中的nan并不是空对象,其实际上是numpy.flo
- 如何在页面中实现对电子信箱的访问?emaile.htm<HTML><HEAD><META NAME=
- 之前在豆瓣上听到有友邻在抱怨卓越的配送速度慢得跟蜗牛一样,超过配送时间期限几天还没送到,当时不太相信,因为此前在卓越网上购买的物品基本上是在
- 很多深度神经网络模型需要加载预训练过的Vgg参数,比如说:风格迁移、目标检测、图像标注等计算机视觉中常见的任务。那么到底如何加载Vgg模型呢
- Selenium的介绍、配置和调用Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具。Selenium测
- 前言这篇文章主要给大家总结了关于学习Python的新手们容易犯的几个错误,一共四个易犯错误,下面来看看详细的介绍吧。一、i+=1 不等于++
- 前言人类都是视觉动物,不管是男生还是女生看到漂亮的小姐姐、小哥哥就想截图保存下来。可是截图会对画质会产生损耗,截取的画面不规整,像素不高等问
- 数据可视化的时候,常常需要将多个子图放在同一个画板上进行比较,python 的matplotlib包下的subplot可以帮助完成子功能。p
- 一、安装软件包并创建项目$sudo pip install django$sudo python -c "import djang
- 在python中利用numpy创建一个array, 然后我们想获取array的最大值,最小值。可以使用一下方法:一、创建数组这样就可以获得一
- 引文之前将PHP反序列化的基础知识讲了一遍,不知道大家学习的怎么样了,今天给大家带来PHP反序列化的进阶知识:PHAR反序列化,也是之前本人
- 请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库.一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据
- * 表的建立关系数据库的主要特点之一就是用表的方式组织数据。表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有
- demo中的p中的script改大或改小看看。。。移动到top的时间始终是一定的,你也可以设置一个阀值,在页面高度到达这个阀值之前,移动的总