全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 读取与创建 tar.gz 文件

使用tarfile模块可轻松处理tar.gz文件。首先通过'tarfile.open(filename, mode)'打开文件,读取时用'r:gz'模式,调用getnames()获取文件列表,extractall()解压全部内容;创建时用'w:gz'模式,add()方法添加文件或目录,并可通过arcname指定归档路径;为防止路径遍历攻击,应验证成员路径安全性,确保其在目标目录内再提取。该模块适用于日常备份与分发任务,操作简单且功能强大。

Python 中处理 tar.gz 文件非常方便,主要使用内置的 tarfile 模块。它可以用来读取、创建、压缩和解压 .tar.gz 格式的文件。下面介绍如何用 Python 读取和创建这种压缩包。

读取 tar.gz 文件

要查看或提取一个已有的 .tar.gz 文件内容,可以使用 tarfile.open() 方法,并指定模式为 'r:gz'

  • 使用 getnames() 获取文件列表
  • 使用 extractall() 解压全部内容
  • 也可以逐个提取特定文件

示例代码:

import tarfile

打开并读取 tar.gz 文件

with tarfile.open('example.tar.gz', 'r:gz') as tar:

查看压缩包中的文件名

print(tar.getnames())

# 解压所有文件到当前目录
tar.extractall(path='.')

# 或者只提取某个文件
# tar.extract('file.txt')

创建 tar.gz 文件

你可以将一个或多个文件打包并压缩成 .tar.gz 文件。模式设为 'w:gz' 表示写入 gzip 压缩的 tar 文件。

示例:把多个文件加入压缩包

import tarfile

创建一个新的 tar.gz 文件

with tarfile.open('new_archive.tar.gz', 'w:gz') as tar:

添加单个文件

tar.add('file1.txt', arcname='file1.txt')

# 添加整个目录(会递归包含子目录)
tar.add('my_folder/', arcname='my_folder')

# 可以添加多个文件
# tar.add('file2.jpg')

注意:arcname 参数用于设置在压缩包内的路径名称,避免保存绝对路径。

检查并安全提取 tar.gz 文件

直接解压用户提供的压缩包可能存在路径遍历风险(如文件名包含 ../)。建议先验证成员路径是否安全。

安全提取示例:

import os
import tarfile

def is_safe_path(path, base="/tmp"): """检查路径是否在目标基目录内""" return os.path.realpath(path).startswith(base)

with tarfile.open('untrusted.tar.gz', 'r:gz') as tar: for member in tar.getmembers(): if is_safe_path(os.path.join('.', member.name)): tar.extract(member, path='.') else: print(f"危险路径,跳过: {member.name}")

基本上就这些。tarfile 模块功能强大又简单,适合日常做备份、分发或归档任务。只要注意压缩与解压时的路径问题,基本不会出错。


# python  # 解压 


相关文章: 如何快速辨别茅台真假?关键步骤解析  如何通过网站建站时间优化SEO与用户体验?  平台云上自助建站如何快速打造专业网站?  PHP 500报错的快速解决方法  如何在西部数码注册域名并快速搭建网站?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站    西安大型网站制作公司,西安招聘网站最好的是哪个?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  测试制作网站有哪些,测试性取向的权威测试或者网站?  c# 在高并发场景下,委托和接口调用的性能对比  建站主机CVM配置优化、SEO策略与性能提升指南  如何选择高效可靠的多用户建站源码资源?  如何零基础开发自助建站系统?完整教程解析  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  如何选择建站程序?包含哪些必备功能与类型?  如何通过FTP服务器快速搭建网站?  如何通过商城免费建站系统源码自定义网站主题?  如何在局域网内绑定自建网站域名?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何高效生成建站之星成品网站源码?  香港服务器WordPress建站指南:SEO优化与高效部署策略  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  高性价比服务器租赁——企业级配置与24小时运维服务  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何用好域名打造高点击率的自主建站?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何将凡科建站内容保存为本地文件?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  css网站制作参考文献有哪些,易聊怎么注册?  淘宝制作网站有哪些,淘宝网官网主页?  如何快速生成凡客建站的专业级图册?  网站制作公司排行榜,抖音怎样做个人官方网站  如何获取上海专业网站定制建站电话?  定制建站哪家更专业可靠?推荐榜单揭晓  电商平台网站制作流程,电商网站如何制作?  如何通过虚拟主机快速搭建个人网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  Python lxml的etree和ElementTree有什么区别  建站主机与虚拟主机有何区别?如何选择最优方案? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。