信息发布→ 登录 注册 退出

如何使用Python实现文件压缩?

发布时间:2025-12-01

点击量:
使用 zipfile、tarfile 和 shutil 模块可实现 Python 文件压缩。1. zipfile 适用于 ZIP 格式,支持单个或多个文件压缩,通过 ZipFile 类写入文件并处理路径不存在情况;2. tarfile 用于生成 .tar.gz 压缩包,适合目录归档,支持 gzip 等压缩方式,使用 tarfile.open 和 add 方法打包目录;3. shutil 提供高级接口 make_archive,一键压缩目录为 zip、tar、gztar 等格式,语法简洁,自动处理扩展名。根据需求选择:zipfile 灵活控制文件,tarfile 适合类 Unix 系统归档,shutil 最简单快捷,注意路径存在性和异常处理。

如何使用python实现文件压缩?

Python 提供了多种内置模块来实现文件压缩,最常用的是 zipfiletarfileshutil。根据压缩格式(如 ZIP 或 TAR.GZ),选择合适的模块即可快速完成任务。

使用 zipfile 压缩文件

适用于生成或读取 ZIP 格式的压缩包。支持单个或多个文件的压缩。

示例:将一个或多个文件打包为 ZIP

import zipfile
import os

def zip_files(file_list, output_zip):
    with zipfile.ZipFile(output_zip, 'w', zipfile.ZIP_DEFLATED) as zf:
        for file in file_list:
            if os.path.exists(file):
                zf.write(file, os.path.basename(file))
            else:
                print(f"{file} 不存在")

使用示例

files = ['file1.txt', 'file2.txt']
zip_files(files, 'output.zip')

使用 tarfile 压缩为 .tar.gz 文件

适合打包并压缩目录,常用于类 Unix 系统,支持 gzip、bzip2 等压缩方式。

示例:将目录压缩为 .tar.gz

import tarfile
import os

def tar_gz_directory(source_dir, output_tar):
    with tarfile.open(output_tar, "w:gz") as tar:
        if os.path.isdir(source_dir):
            tar.add(source_dir, arcname=os.path.basename(source_dir))
        else:
            print(f"{source_dir} 不是有效目录")

使用示例

tar_gz_directory('/path/to/folder', 'archive.tar.gz')

多个微信小程序源码合集 多个微信小程序源码合集

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,旨在提供便捷的用户体验,无需下载安装即可在微信内使用。本压缩包包含了丰富的源码资源,涵盖了多个领域的应用场景,下面将逐一介绍其中涉及的知识点。1. 图片展示:这部分源码可能涉及了微信小程序中的``组件的使用,用于显示图片,以及`wx.getSystemInfo`接口获取屏幕尺寸,实现图片的适配和响应式布局。可能还包括了图片懒加

多个微信小程序源码合集 0 查看详情 多个微信小程序源码合集

使用 shutil 高级打包操作

shutil 模块提供更简洁的接口,可一键压缩整个目录,支持 zip、tar、gztar 等格式。

示例:使用 shutil.make_archive 打包目录

import shutil
import os

def compress_folder(base_name, format, folder_path):
    if os.path.exists(folder_path):
        shutil.make_archive(base_name, format, folder_path)
        print(f"已生成 {base_name}.{format}")
    else:
        print("指定路径不存在")

支持 format: 'zip', 'tar', 'gztar', 'bztar', 'xztar'

compress_folder('my_backup', 'zip', '/path/to/data')

基本上就这些。根据需要选择合适的方式,zipfile 灵活控制文件,tarfile 适合带压缩的归档,shutil 则最简单快捷。注意处理路径和异常,确保文件可访问。不复杂但容易忽略细节。

以上就是如何使用Python实现文件压缩?的详细内容,更多请关注其它相关文章!


相关文章: Python字典中优雅地迭代剩余元素的方法  AO3最新镜像入口 Archive of Our Own官方平台访问  Golang如何安装Swagger工具_GoSwagger文档生成环境  使用Pandas转换并合并DataFrame:多列映射至统一结构  如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧  新手怎么开始学化妆 零基础化妆入门教程  163邮箱官方主页登录 直达网易邮箱登录核心页面  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  Yii2模块参数配置指南:正确声明与访问模块级配置  Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题  在WordPress中通过REST API获取BasicAuth保护的远程文章  怎么搭建一个php网站源码_搭php网站源码搭建教程  将HTML动态表格多行数据保存到Google Sheet的教程  TikTok网页版直接登录 TikTok网页端官方平台入口  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】  如何在Promise链中优雅地中断后续then执行  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  mysql备份恢复性能优化_mysql备份恢复性能优化方法  mc.js官网登录入口 mc.js官方登录入口最新版  CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整  如何在J*a中使用Locale处理多语言环境  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  J*a初级项目如何接入API数据_第三方接口请求与响应解析  C++ map遍历方法大全_C++ map迭代器使用总结  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  在Google App Engine Go中实现独立模块代码库与灵活路由  曝R星经典之作开发图 设计简陋但信息密集!  sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置  C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  WooCommerce后台产品编辑页:获取分类ID并实现角色权限控制  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  PHP教程:将数据库查询结果动态展示到HTML Textarea的最佳实践  J*a实现学校排课程序_面向对象结构化项目示例  解决Tabulator日期时间排序问题的专业指南  Typer应用中动态命令行参数的解析与处理  深入理解J*a合成构造器:何时以及为何阻止其生成  2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC  python3时间如何用calendar输出?  CKEditor 5 自定义构建在React应用中渲染失败的调试与解决  抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧  PHP:从文本中提取带逗号的数字价格教程  Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  PostgreSQL海量数据高效导入策略:Python与Django实践指南  LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】  微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!