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

liftword3个月前 (03-03)技术文章27

在日常工作中,我们经常需要对文件进行压缩和解压操作以减少存储空间或方便文件传输。今天,我们将学习如何使用 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 文件操作的更多进阶内容,敬请期待!

相关文章

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

在日常开发中,压缩和解压文件是处理文件操作的常见需求。Python 提供了丰富的内置模块,比如 zipfile 和 shutil,让我们能够高效地压缩和解压文件。今天我们将学习如何使用这些模块进行操作...

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

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

python压缩/解压gzip 大文件

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

使用 Python 在 Excel 中插入、压缩、替换、提取和删除图像

Excel 不仅仅是一个数字和公式的工具;它还提供了用于处理图像的强大功能。无论您是创建报告、演示文稿还是数据可视化,合并图像都可以大大提高 Excel 项目的整体影响力和专业性。在 Excel 中...

Python 视频处理与特效:高效实现编辑与压缩

现如今各种短视频,特效已经火的可谓“一塌糊涂”,那我们今天就来聊聊用python语言来处理视频与特效。Python 提供了强大的库,如 FFmpeg 和 MoviePy,可用于处理、编辑、压缩和添加视...