python3压缩和解压文件总结(python经典编程案例)

简介: 这篇文章总结了在Python 3中使用不同库对文件进行压缩和解压的方法,包括tar、7z、zip和gzip格式的操作示例。

1、tar压缩和解压

import tarfile
from pathlib import PurePath
path = PurePath(".") / "test"

zip_path = path / "123.tar.gz"
file_path = path / "123.txt"

# 压缩
# w:gz 写入代表gz压缩,还有其他用法
with tarfile.open(zip_path, "w:gz") as tar:
    tar.add(file_path, arcname=file_path.name)

# 解压
with tarfile.open(zip_path, "r:gz") as tar:
    tar.extractall(path / "1123")

2、7z压缩和解压

import py7zr  # 需要先安装:pip install py7zr
import os
from pathlib import Path

path = Path(".") / "test"
zip_path = path / "123.7z"
file_path = path / "123.txt"

# 压缩
with py7zr.SevenZipFile(zip_path, 'w') as z:
    z.writeall(file_path, arcname=os.path.basename(file_path))

# 解压
with py7zr.SevenZipFile(zip_path, mode='r') as z:
    z.extractall()

3、zip写入压缩和解压

from zipfile import ZipFile
from pathlib import PurePath

path = PurePath(".") / "test"

zip_path = path / "123.zip"
file_path = path / "123.txt"

# 这里的mode, w是写入,r是读取, a是追加
# write写入的是文件的路径
with ZipFile(zip_path, "w") as f:
    f.write(file_path)  # 注意这里写入的文件的路径会和file_path保持一致
    # 建议用下面这一步
    f.write(file_path, arcname=file_path.name)  # file_path.name等同于os.path.basename

# 解压文件
with ZipFile(zip_path, "r") as f:
    print(f.namelist())  # 打印压缩包里的文件
    f.extractall('out_path')  # out_path解压位置

4、gzip写入压缩和解压

import gzip
# 写
filepath = f"file.txt.gz"
content = "Hello World"
with gzip.open(filepath, 'wt') as f:
    f.write(content)

# 读
with gzip.open(filepath, 'rt') as f:
    content_read = f.read()
print(content_read)
相关文章
|
8月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1443 68
|
8月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
507 3
|
8月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
732 3
|
8月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
547 3
|
8月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
755 0
|
9月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1517 102
|
9月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
493 104
|
9月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
383 103
|
9月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
403 82
|
9月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的多面手
Python:现代编程的多面手
442 0

推荐镜像

更多