在日常开发中,我们经常需要处理压缩文件。TAR(Tape Archive)是一种常见的归档格式,尤其在Linux系统中广泛使用。Python标准库中的 tarfile 模块为我们提供了强大而简便的接口来创建、读取、更新和提取 TAR 文件。本教程将带你从零开始掌握 Python tarfile 的基本用法,即使你是编程小白也能轻松上手!
TAR 文件本质上是一个将多个文件或目录打包成一个单一文件的归档格式。它本身不进行压缩(但常与 gzip、bzip2 等压缩算法结合使用,形成 .tar.gz 或 .tar.bz2 文件)。使用 TAR文件操作 可以方便地备份、传输或分发一组文件。
Python 内置了 tarfile 模块,无需额外安装。只需在代码开头导入即可:
import tarfile 要创建一个新的 TAR 归档文件,可以使用 tarfile.open() 方法,并指定模式为 'w'(write)。
import tarfile# 创建一个名为 archive.tar 的 TAR 文件with tarfile.open('archive.tar', 'w') as tar: tar.add('file1.txt') # 添加单个文件 tar.add('my_folder/') # 添加整个目录 上面的代码会将 file1.txt 和 my_folder/ 目录打包进 archive.tar 中。
若希望同时压缩文件,可使用 'w:gz'(gzip 压缩)或 'w:bz2'(bzip2 压缩)模式:
import tarfile# 创建一个 gzip 压缩的 TAR 文件with tarfile.open('archive.tar.gz', 'w:gz') as tar: tar.add('data/') 解压 TAR 文件同样简单,使用 'r'(read)模式打开,然后调用 extractall() 方法:
import tarfile# 解压 archive.tar 到当前目录with tarfile.open('archive.tar', 'r') as tar: tar.extractall(path='./extracted/') 如果 TAR 文件是压缩的(如 .tar.gz),请使用 'r:gz' 模式:
with tarfile.open('archive.tar.gz', 'r:gz') as tar: tar.extractall(path='./extracted/') 在不解压的情况下查看 TAR 文件中包含哪些文件,可以使用 getnames() 或遍历成员:
import tarfilewith tarfile.open('archive.tar', 'r') as tar: file_list = tar.getnames() print("TAR 文件包含以下内容:") for name in file_list: print(name) 在解压不受信任的 TAR 文件时,务必注意路径遍历攻击(Path Traversal)。建议使用 tarfile.is_tarfile() 验证文件是否为合法 TAR 格式,并避免直接解压到系统关键目录。
if tarfile.is_tarfile('unknown_file.tar'): with tarfile.open('unknown_file.tar', 'r') as tar: # 可进一步检查成员路径是否安全 tar.extractall(path='./safe_dir/')else: print("这不是一个有效的 TAR 文件!") 通过本教程,你已经掌握了使用 Python压缩解压 功能的核心方法。无论是打包日志、备份项目,还是处理第三方数据集,tarfile 模块都能高效完成任务。希望这篇 tarfile模块教程 能帮助你在实际项目中更加得心应手!
提示:所有代码示例均可直接复制运行,请确保文件路径存在且有读写权限。
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122754.html