15Python标准库系列之tarfile模块

简介:

Python标准库系列之tarfile模块


The tarfile module makes it possible to read and write tar archives, including those using gzip, bz2 and lzma compression. Use the zipfile module to read or write .zip files, or the higher-level functions in shutil.

官方文档:https://docs.python.org/3.5/library/tarfile.html


打包及重命名文件

1
2
3
4
5
6
7
8
9
>>>  import  tarfile
# 以w模式创建文件
>>> tar  =  tarfile. open ( 'tar_file.tar' , 'w' )
# 添加一个文件,arcname可以重命名文件
>>> tar.add( '/tmp/folder/file.txt' , arcname = 'file.log' )
# 添加一个目录
>>> tar.add( '/tmp/folder/tmp' )                         
# 关闭
>>> tar.close()

查看文件列表

1
2
3
4
>>> tar  =  tarfile. open ( 'tar_file.tar' , 'r' )             
# 获取包内的所有文件列表
>>> tar.getmembers()
[<TarInfo  'file.log'  at  0x7f737af2da70 >, <TarInfo  'tmp/folder/tmp'  at  0x7f737af2dd90 >]

追加

1
2
3
4
5
6
7
# 以w模式创建文件
>>> tar  =  tarfile. open ( 'tar_file.tar' , 'a' )
>>> tar.add( '/tmp/folder/sc.pyc' )
>>> tar.close()
>>> tar  =  tarfile. open ( 'tar_file.tar' , 'r' )
>>> tar.getmembers()
[<TarInfo  'file.log'  at  0x7ff8d4fa1110 >, <TarInfo  'tmp/folder/tmp'  at  0x7ff8d4fa11d8 >, <TarInfo  'tmp/folder/sc.pyc'  at  0x7ff8d4fa12a0 >]

解压全部文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>>  import  os
>>>  import  tarfile
>>> os.system( "ls -l" )
总用量  12
- rw - rw - r - -  1  ansheng ansheng  10240  5 月   26  17 : 40  tar_file.tar
0
>>> tar  =  tarfile. open ( 'tar_file.tar' , 'r' )
>>> tar.extractall()
>>> tar.close()
>>> os.system( "ls -l" )
总用量  16
- rw - rw - r - -  1  ansheng ansheng      0  5 月   26  16 : 05  file .log
- rw - rw - r - -  1  ansheng ansheng  10240  5 月   26  17 : 40  tar_file.tar
drwxrwxr - 3  ansheng ansheng   4096  5 月   26  17 : 48  tmp
0

解压单个文件

如果我们的压缩包很大的情况下,就不能够一次性解压了,那样太耗内存了,可以通过下面的方式进行解压,其原理就是一个文件一个文件的解压。

1
2
3
4
5
import  tarfile
tar  =  tarfile. open ( 'tar_file.tar' , 'r' )
for  in  tar.getmembers():
     tar.extract(n, "/tmp" )
tar.close()










本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1925793,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
49 20
|
1月前
|
Python
Python Internet 模块
Python Internet 模块。
124 74
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
172 77
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
129 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
12天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
25 3
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
134 4
数据分析的 10 个最佳 Python 库
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
53 11
|
2月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
155 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型