20 天学 Python 文件操作:Day 16 文件压缩与解压

liftword2个月前 (03-03)技术文章18

在日常工作中,我们经常需要对文件进行压缩和解压操作以减少存储空间或方便文件传输。今天,我们将学习如何使用 Python 进行文件的压缩与解压。


1. 使用 zipfile 模块进行 ZIP 文件操作

创建 ZIP 文件

使用 zipfile 模块可以轻松创建 ZIP 文件。

import zipfile

def create_zip(output_filename, files):
    with zipfile.ZipFile(output_filename, 'w') as zipf:
        for file in files:
            zipf.write(file)
            print(f"Added {file} to {output_filename}")

# 测试
files_to_zip = ["file1.txt", "file2.txt"]
create_zip("output.zip", files_to_zip)

解压 ZIP 文件

import zipfile

def extract_zip(zip_filename, extract_to):
    with zipfile.ZipFile(zip_filename, 'r') as zipf:
        zipf.extractall(extract_to)
        print(f"Extracted {zip_filename} to {extract_to}")

# 测试
extract_zip("output.zip", "./extracted")

2. 使用 shutil 模块创建 TAR 文件

shutil 模块提供了创建 TAR 文件的便捷方法。

创建 TAR 文件

import shutil

def create_tar(output_filename, folder_to_compress):
    shutil.make_archive(output_filename, 'gztar', folder_to_compress)
    print(f"Created TAR.GZ archive: {output_filename}.tar.gz")

# 测试
create_tar("backup", "./folder_to_compress")

解压 TAR 文件

import tarfile

def extract_tar(tar_filename, extract_to):
    with tarfile.open(tar_filename, 'r:gz') as tar:
        tar.extractall(path=extract_to)
        print(f"Extracted {tar_filename} to {extract_to}")

# 测试
extract_tar("backup.tar.gz", "./extracted")

3. 压缩文件夹中的所有文件

我们可以递归遍历文件夹,将文件夹内容压缩为一个归档文件。

示例代码:压缩文件夹

import os
import zipfile

def zip_folder(folder_path, output_filename):
    with zipfile.ZipFile(output_filename, 'w') as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                arcname = os.path.relpath(file_path, folder_path)
                zipf.write(file_path, arcname)
                print(f"Added {file_path} as {arcname}")

# 测试
zip_folder("./folder_to_compress", "compressed_folder.zip")

4. 实践练习

  1. 创建一个 ZIP 文件,包含当前目录下的所有 .txt 文件。
  2. 编写脚本,自动解压指定目录下所有的 ZIP 文件。
  3. 将一个文件夹压缩为 TAR.GZ 文件并解压到另一个文件夹中。

通过今天的学习,你已经掌握了文件压缩与解压的基本方法。明天我们将继续探索 Python 文件操作的更多进阶内容,敬请期待!

相关文章

最全RAR文件操作指南:如何用Python压缩、解压与筛选文件

引言:Python 对 .rar 文件进行压缩、解压以及筛选特定文件的操作代码封装一下import os import rarfile #todo 用于处理 RAR 文件 import zipfil...

Python全能压缩:ZIP的压缩、解压、文件筛选与删除,一键搞定!

引言:这个方法实现了文件压缩与解压的常见操作,涵盖内容如下:1、从文件夹创建 ZIP 文件 2、从文件夹创建 ZIP 文件(筛选特定文件) 3、解压 ZIP 文件中的所有内容 4、解压 ZIP...

使用 Python 压缩 PDF 或减小 PDF 文件大小的 5 种方法

在存储、共享和传输方面,处理大型 PDF 文件可能是一个真正的挑战。PDF 压缩提供了一种有效的解决方案来减小文件大小,使文档更易于管理并优化存储使用情况。压缩的 PDF 文件具有几个关键优势:降低存...

15《Python 办公自动化教程》文件压缩与解压缩

压缩包也是我们平时工作中经常要接触到的文件格式,压缩文件后缀名通常有 .zip、.rar、.7z 等等。Python 中也有专门用来操作压缩包文件的第三方模块 zipfile。听这个名字就知道是用来操...

python压缩/解压gzip 大文件

最近处理线上日志,日志文件刚好是经过压缩的,且是gz后缀。自己便采用gzip库来处理。示例如下:创建gzip文件# -- coding: utf-8 -- import gzip """ 创建gzi...