Python中的压缩和解压缩模块:zipfile和tarfile

2c97f7ac66fcec6e111ebd182795c5c8.png

更多Python学习内容:ipengtao.com

在Python中,zipfile和tarfile是两个常用的模块,用于处理压缩文件(如ZIP和TAR文件)的创建、读取和解压缩。本文将深入介绍这两个模块的使用方法、常见操作和示例代码,帮助大家更好地理解和应用这些功能。

zipfile模块

1.创建压缩文件

zipfile模块可以用来创建新的ZIP文件,并向其中添加文件或文件夹。

示例代码如下:

import zipfile

# 创建新的ZIP文件
with zipfile.ZipFile('archive.zip', 'w') as zip_file:
    # 添加文件到ZIP文件中
    zip_file.write('file1.txt')
    zip_file.write('file2.txt')
    # 添加文件夹到ZIP文件中
    zip_file.write('folder1', arcname='folder1')

2. 解压缩ZIP文件

使用zipfile模块可以轻松解压缩ZIP文件中的内容。

示例代码如下:

import zipfile

# 解压缩ZIP文件
with zipfile.ZipFile('archive.zip', 'r') as zip_file:
    zip_file.extractall('extracted_files')

tarfile模块

1. 创建压缩文件

tarfile模块用于创建新的TAR文件,并添加文件或文件夹到其中。

示例代码如下:

import tarfile

# 创建新的TAR文件
with tarfile.open('archive.tar.gz', 'w:gz') as tar_file:
    # 添加文件到TAR文件中
    tar_file.add('file1.txt')
    tar_file.add('file2.txt')
    # 添加文件夹到TAR文件中
    tar_file.add('folder1', arcname='folder1')

2. 解压缩TAR文件

使用tarfile模块可以解压缩TAR文件的内容。

示例代码如下:

import tarfile

# 解压缩TAR文件
with tarfile.open('archive.tar.gz', 'r:gz') as tar_file:
    tar_file.extractall('extracted_files')

常见操作

1. 添加文件或文件夹到压缩文件

在使用zipfile和tarfile模块创建压缩文件时,可以通过多种方式添加文件或文件夹到压缩文件中。

示例代码如下:

添加单个文件到压缩文件

使用write方法添加单个文件到压缩文件中:

import zipfile
import tarfile

# 创建ZIP文件并添加单个文件
with zipfile.ZipFile('example.zip', 'w') as zip_file:
    zip_file.write('file1.txt')
import tarfile

# 创建TAR文件并添加单个文件
with tarfile.open('example.tar.gz', 'w:gz') as tar_file:
    tar_file.add('file1.txt')
添加多个文件到压缩文件

可以使用write方法多次添加文件,也可以使用write方法和add方法结合添加多个文件:

import zipfile
import tarfile

# 创建ZIP文件并添加多个文件
with zipfile.ZipFile('example.zip', 'w') as zip_file:
    zip_file.write('file1.txt')
    zip_file.write('file2.txt')

# 创建TAR文件并添加多个文件
with tarfile.open('example.tar.gz', 'w:gz') as tar_file:
    tar_file.add('file1.txt')
    tar_file.add('file2.txt')

2. 解压指定文件或文件夹

在解压缩压缩文件时,有时候只需要解压缩其中的某个文件或文件夹,可以通过指定文件名或文件夹名进行解压缩。

示例代码如下:

import zipfile
import tarfile

# 解压指定文件
with zipfile.ZipFile('example.zip', 'r') as zip_file:
    zip_file.extract('file1.txt', 'extracted_files')

# 解压指定文件夹
with tarfile.open('example.tar.gz', 'r:gz') as tar_file:
    tar_file.extract('folder1', 'extracted_files')

3. 获取压缩文件中的文件列表

有时候需要查看压缩文件中包含的文件列表,可以使用namelist方法获取文件列表。

示例代码如下:

import zipfile
import tarfile

# 获取ZIP文件中的文件列表
with zipfile.ZipFile('example.zip', 'r') as zip_file:
    file_list = zip_file.namelist()
    print(file_list)

# 获取TAR文件中的文件列表
with tarfile.open('example.tar.gz', 'r:gz') as tar_file:
    file_list = tar_file.getnames()
    print(file_list)

4. 删除压缩文件中的文件或文件夹

有时候需要从压缩文件中删除指定的文件或文件夹,可以使用zipfile模块的ZipFile类中的remove方法或tarfile模块的TarFile类中的removefile方法。

示例代码如下:

import zipfile
import tarfile
import os

# 删除ZIP文件中的文件
with zipfile.ZipFile('example.zip', 'a') as zip_file:
    zip_file.remove('file1.txt')

# 删除TAR文件中的文件
with tarfile.open('example.tar.gz', 'a:gz') as tar_file:
    tar_file.removefile('file1.txt')

# 删除ZIP文件中的文件夹及其内容
with zipfile.ZipFile('example.zip', 'a') as zip_file:
    for root, dirs, files in os.walk('folder1'):
        for file in files:
            zip_file.remove(os.path.join(root, file))

# 删除TAR文件中的文件夹及其内容
with tarfile.open('example.tar.gz', 'a:gz') as tar_file:
    for root, dirs, files in os.walk('folder1'):
        for file in files:
            tar_file.remove(os.path.join(root, file))

实际应用示例

以下是一个结合使用zipfile和tarfile模块的示例,将文件打包成ZIP和TAR格式:

import zipfile
import tarfile

# 创建ZIP文件
with zipfile.ZipFile('example.zip', 'w') as zip_file:
    zip_file.write('file1.txt')
    zip_file.write('file2.txt')

# 创建TAR文件
with tarfile.open('example.tar.gz', 'w:gz') as tar_file:
    tar_file.add('file1.txt')
    tar_file.add('file2.txt')

总结

通过本文的介绍,可以学习到Python中zipfile和tarfile模块的基本用法,包括创建压缩文件、添加文件或文件夹、解压缩文件等常见操作。这两个模块在处理压缩文件时非常有用,可以简化文件操作,并实现数据的高效管理和传输。

如果你觉得文章还不错,请大家 点赞、分享、留言 ,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com


如果想要系统学习Python、Python问题咨询,或者考虑做一些工作以外的副业,都可以扫描二维码添加微信,围观朋友圈一起交流学习。

8ed858568cfa6bd7114efca1c7f78770.gif

我们还为大家准备了Python资料和副业项目合集,感兴趣的小伙伴快来找我领取一起交流学习哦!

9c119a03992f8c03d21480a470184459.jpeg

往期推荐

Python 中的 iter() 函数:迭代器的生成工具

Python 中的 isinstance() 函数:类型检查的利器

Python 中的 sorted() 函数:排序的利器

Python 中的 hash() 函数:哈希值的奥秘

Python 中的 slice() 函数:切片的利器

Python 的 tuple() 函数:创建不可变序列

点击下方“阅读原文”查看更多

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值