`

PYthon压缩3

 
阅读更多
python模块之zipfile2007年08月29日 星期三 14:45这篇文章是从我的另一个blog转过来的: http://hi.baidu.com/python23/

zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。
zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。
    比如要读取一个zipfile,这里假设filename是一个文件的路径:


import zipfile

z = zipfile.ZipFile(filename, 'r') # 这里的第二个参数用r表示是读取zip文件,w是创建一个zip文件

for f in z.namelist():
    print f

    上面的代码是读取一个zip压缩包里所有文件的名字。z.namelist() 会返回压缩包内所有文件名的列表。
再看看下面一个:

import zipfile

z = zipfile.ZipFile(filename, 'r')

for i in z.infolist():
    print i.file_size, i.header_offset
   
    这里使用了z.infolist(), 它返回的就是压缩包内所有文件的信息,就是一个ZipInfo的列表。一个ZopInfo对象中包含了压缩包内一个文件的信息,其中比较常用的是 filename, file_size, header_offset, 分别为文件名,文件大小,文件数据在压缩包中的偏移。其实之前的z.namelist()就是读取的ZopInfo中的filename,组成一个 list返回的。
从压缩包里解压缩出一个文件的方法是使用ZipFile的read方法:

import zipfile

z = zipfile.ZipFile(filename, 'r')

print z.read(z.namelist()[0])

这样就读取出z.namelist()中的第一个文件,并且输出到屏幕,当然也可以把它存储到文件。

下面是创建zip压缩包的方法:

与读取的方法其实很类似的:

import zipfile, os

z = zipfile.ZipFile(filename, 'w') # 注意这里的第二个参数是w,这里的filename是压缩包的名字

#假设要把一个叫testdir中的文件全部添加到压缩包里(这里只添加一级子目录中的文件):
if os.path.isdir(testdir):
    for d in os.listdir(testdir):
         z.write(testdir+os.sep+d)
# close() 是必须调用的!
z.close()
分享到:
评论

相关推荐

    python+PDF压缩+典型的PDF压缩算法

    本篇文章将深入探讨如何使用Python实现PDF压缩,以及涉及的一些典型PDF压缩算法。 首先,Python中有多个库可以帮助我们处理PDF文件,如PyPDF2、PDFMiner和PDFBox等。在PDF压缩中,我们通常会用到PyPDF2库,它提供了...

    Python应用实战案例:Python压缩NC格式(附代码).zip

    在本实践案例中,我们将探讨如何使用Python处理和压缩NetCDF (Network Common Data Form) 文件。NetCDF是一种广泛用于科学数据存储的自描述、多维数组格式,它支持跨平台的访问和共享。Python提供了多个库来处理这种...

    Python实现PDF图片文件压缩

    在这个场景中,我们将讨论如何使用Python来实现PDF图片文件的压缩。首先,我们需要理解PDF文件的结构,它可能包含文本、图像和其他元素。对于含有大量图片的PDF文件,压缩图片可以显著减小文件大小,便于存储和传输...

    压缩感知重构算法之SP算法python实现.zip_SP python_python 压缩感知_python 图像处理_pyt

    压缩感知Sp算法,python实现,图像处理方向的,可以改变为信号处理,可以极好的重构出原图像。

    python3压缩学习,压缩当前目录

    本教程主要围绕"python3压缩学习,压缩当前目录"这一主题展开,讲解如何使用Python的内置库`zipfile`来实现这一功能。Visual Studio Code(VSCode)作为流行的代码编辑器,也将在我们的学习过程中起到辅助作用。 ...

    利用python对图片进行无损压缩

    3. **查看图片信息**:在压缩之前,我们可以查看图片的尺寸、模式等信息。 ```python print(image.size) # 图片的宽度和高度 print(image.mode) # 图片的颜色模式(如RGB、灰度等) ``` 4. **调整图片大小**:通过...

    Python压缩和解压缩文件

    在Python编程语言中,处理压缩和解压缩文件是一项常见的任务,尤其在数据传输、存储优化以及备份场景下。Python提供了内置的`zipfile`和`tarfile`模块,方便我们对ZIP和TAR格式的文件进行操作。接下来,我们将详细...

    Huffman 编码图像无损压缩和解压缩 Python示例代码 哈夫曼编码

    pip install opencv-python numpy 2. 直接运行 main.py 脚本即可使用。 压缩原理: 1. 统计输入图像中每个像素值出现的频率,建立字符到频率的映射表 2. 根据频率使用最小堆构建 Huffman 树 3. 根据 Huffman 树为每个...

    python压缩文件与解压缩文件

    3. 使用`write()`方法将文件添加到ZIP档案中,指定源文件路径和可选的压缩名。 4. 完成所有添加后,调用`close()`方法关闭`ZipFile`对象。 例如,要将一个名为`example.txt`的文件压缩为`example.zip`,可以这样...

    基于python的JPEG图像压缩

    3. 对比原始和压缩图像:可以使用图像处理库如OpenCV或matplotlib进行显示和比较。 `txt.txt`可能包含关于压缩算法的文档或者项目说明,详细解释了代码的工作原理和使用方法。`.gitattributes`是Git版本控制系统中...

    Python-使用tinypng进行图片压缩

    本篇文章将详细介绍如何在Python项目中使用tinypng进行图片压缩。 首先,我们需要了解tinypng的工作原理。tinypng采用了智能有损压缩技术,主要针对PNG和JPEG格式的图片。它通过消除图片中的颜色冗余来降低图片大小...

    python 压缩文件

    Python是一种强大的、面向对象的编程语言,其内置的`zipfile`和`tarfile`模块提供了处理压缩文件的能力。在本篇文章中,我们将深入探讨如何使用Python来创建、读取和解压ZIP文件,以及一些相关的高级用法。 标题中...

    Python压缩文件

    利用Python操作对文件进行压缩。

    python3 多线程压缩文件

    python3 多线程压缩文件

    c++调用python接口实现压缩拆分文件功能

    3. 获取函数对象:通过`PyObject_GetAttrString`获取Python模块中的函数对象。 4. 调用Python函数:使用`PyObject_CallObject`或`PyEval_CallObject`调用Python函数,并传递必要的参数。 5. 错误处理:确保在每次...

    基于python的图片批量压缩脚本

    3. **记录日志**:为了跟踪操作和排查问题,脚本应该记录压缩过程中的信息。可以使用Python的内置logging模块创建一个日志文件,记录每个图片的原始大小、压缩后的大小以及可能出现的任何错误。 4. **处理子目录**:...

    1_SVD_pca_python_图像压缩_

    3. **代码实现**: `test.py`可能包含了图像读取和压缩的测试代码,`compute_param.py`可能负责计算相关参数,`pca.py`包含了PCA图像压缩的实现,`untitled1.py`可能是一个未命名的辅助脚本,而`svd_self.py`则是...

    JPEG图像压缩算法的python实现

    在研究JPEG压缩编码对图像数据压缩的基本原理的基础上,设计了JPEG图像压缩算法程序实现流程,利用 Python语言对程序进行了编写,并实现了对压缩质量进行控制,验证了JPEG压缩编码对图像数据压缩的可行性。

    Python-TensorFlow数据压缩

    在Python和TensorFlow中,数据压缩的主要目的是减少存储需求和加快数据传输速度。大型数据集不仅占用了大量存储空间,还可能导致训练过程中的I/O瓶颈,影响模型的训练效率。通过压缩,我们可以减小数据的体积,提高...

    Python123之字符串压缩#134865

    3. `bz2`库:提供了Bzip2压缩算法,这是一种高压缩比但相对较慢的算法。 4. `lzma`库:实现了XZ Utils中的LZMA算法,具有较高的压缩率和较快的解压速度。 三、使用`zlib`库进行字符串压缩 在Python中,我们可以...

Global site tag (gtag.js) - Google Analytics