Python tar.gz格式压缩、解压
2016-05-11 12:54
429 查看
压缩
解压缩
tar和tar.gz文件区别
tar文件只是把文件打包,文件大小没发生变化;tar.gz是把文件压缩了。
压缩原理
把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来
达到压缩的目的。为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”
长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其
实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据
无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压
缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无
误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression
software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩
包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。
import tarfile import os def tar(fname): t = tarfile.open(fname + ".tar.gz", "w:gz") for root, dir, files in os.walk(fname): print root, dir, files for file in files: fullpath = os.path.join(root, file) t.add(fullpath) t.close() if __name__ == "__main__": tar("del")
解压缩
import tarfile import os def untar(fname, dirs): t = tarfile.open(fname) t.extractall(path = dirs) if __name__ == "__main__": untar("del.tar.gz", ".")
tar和tar.gz文件区别
tar文件只是把文件打包,文件大小没发生变化;tar.gz是把文件压缩了。
压缩原理
把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来
达到压缩的目的。为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”
长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其
实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据
无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压
缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无
误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression
software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩
包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。
相关文章推荐
- Pull is not possible because you have unmerged ...
- 解决ie动态修改link样式,import css不刷新的问题
- css import与link的区别
- Flex include和import ActionScript代码
- phpmyadmin导入(import)文件限制的解决办法
- Thinkphp中import的几个用法详细介绍
- PHP中$_FILES的使用方法及注意事项说明
- 详解Java类库的概念以及import的使用方法
- Java里的static import使用小结
- python中from module import * 的一个坑
- python在不同层级目录import模块的方法
- python之import机制详解
- Python引用(import)文件夹下的py文件的方法
- 跟老齐学Python之Import 模块
- Python import用法以及与from...import的区别
- Python import自定义模块方法
- QML的import目录爬坑记录
- 【编程基础】Java 中的Package和Import
- PHP函数import_request_variables()用法分析
- java随机加法游戏