zipfile模块,提供了基本操作后缀为“zip”的文件的接口,一般使用 ZipFile 类完成操作

1、模块方法

zipfile.is_zipfile(filename):判断 filename 是否是一个有效的 zip 文件

2、模块的类

2.1 ZipFile 类,读写 ZIP 文件

2.1.1 初始化构建类:ZipFile(file[, mode[, compression[, allowZip64]]]):打开一个 ZIP 格式的文件进行读写

参数设置:
file:要打开的文件
mode:打开文件方式,有 r 和 w、a,默认为 r,读取一个已存在的文件,w 会覆盖或写新文件,对一个已存在的 ZIP 文件以 a 模式打开,会把新文件加入压缩包中,如果不是 ZIP 文件,会把压缩文件加入到 file 中去(不知道会发生什么。。)
compression:指定压缩方法,默认 ZIP_STORED,还可以是 zlib 模块下支持的 ZIP_DEFLATED
allowZip64:默认 False,为 True 时可以操作大于 2GB 的文件

2.1.2 实例方法

close():关闭压缩文件,退出程序前不关闭的话会导致未写入
getinfo(name):返回一个 ZipInfo 对象,包含压缩文件里名为 name 的信息
infolist():返回一个列表,每个元素都是一个 ZipInfo 对象,对应压缩文件里的每个文件
namelist():列表形式返回压缩文件里的每个文件名
printdir():输出压缩包内容至 sys.stdout
setpassword(pwd):设置默认密码
open(name[, mode[, pwd]]):解压名为 name 的文件,以只读的 file-like 对象返回(有以下方法 read(), readline(), readlines(), __iter__(), next()),mode 可以为 r、U、rU,pwd 指定解压密码
extract(member[, path[, pwd]]):解压名为 member 的文件到当前目录,path 指定解压至别的目录,pwd 指定密码
extractall([path[, members[, pwd]]]):解压所有文件至当前目录,path 指定解压至别的目录,member 指定只解压其中的哪些文件,pwd 指定密码
read(name[, pwd]):字节形式返回 name 的解压结果,pwd 指定密码
write(filename[, arcname[, compress_type]]):把 filename 文件压缩,压缩包内名字为 arcname,compress_type 可以覆盖类的压缩方法
writestr(zinfo_or_arcname, bytes[, compress_type]):把 bytes 写入压缩包内,名为 zinfo_or_arcname,compress_type 可以覆盖类的压缩方法

2.1.3 实例属性

debug:设置 debug 信息输出等级,默认 0,不输出,最高 3
comment:设置 ZIP 文件的提示信息

2.2 PyZipFile 对象

2.2.1 PyZipFile 对象和 ZipFile 对象完全相同,只是多了一个额外方法

writepy(pathname[, basename]):把 pathname 下 *.py[co] 文件都压缩

2.3 ZipInfo 对象,是由 ZipFile 的 getinfo() 和 infolist() 方法生成的对象

2.3.1 实例属性

filename:压缩文件名
date_time:文件最后修改时间,年、月、日、时、分、秒
compress_type:压缩方法
comment:提示信息
extra:额外数据信息(不清楚指什么)
create_system:创建压缩包的系统信息
create_version:压缩包的 PKZIP 版本信息
extract_version:解压需要的 PKZIP 版本信息
reserved:一定是 0
flag_bits:ZIP 标志位
volume:文件头的 Volume number
internal_attr:内部属性
external_attr:文件外部属性
header_offset:文件头偏移量
CRC:压缩前文件的 crc-32 值
compress_size:压缩后文件大小
file_size:压缩前文件大小

3、命令行接口

可以用以下格式直接在命令行下调用:python -m zipfile ...
“...”部分有以下几种格式:
-l <zipfile>:列出压缩包内文件
-c <zipfile> <source1> ... <sourceN>:把 N 个 source 文件压缩至 zipfile
-e <zipfile> <output_dir>:解压 zipfile 至目标路径
-t <zipfile>:检验是否为有效的 zipfile

Python2.7-zipfile的更多相关文章

  1. SaltStack实战

    SaltStack实战 #安装 安装注意几点 python-libs-2.6.6-64.el6.x86_64 conflicts with file from package python-2.6.6 ...

  2. python 安装 setuptools Compression requires the (missing) zlib module 的解决方案

    背景: 虚拟机centos下安装python辅助工具 setuptools报错,错误信息大概如下: Traceback (most recent call last): File "setu ...

  3. python安装途中遇到的问题和解决方法

    一.setuptools安装错误:RuntimeError: Compression requires the (missing) zlib module 1. 描述 搞了个腾讯云的服务器,闲在手上没 ...

  4. fadora24安装settools,pip包出错解决方法

    1.fadora24安装Python2.7 [root@dev ~]# python bash: python: 未找到命令... 安装软件包“python”以提供命令“python”? [N/y] ...

  5. Python安装setuptools时报Compression requires the (missing) zlib

    装机员为您提供Python安装setuptools时报Compression requires the (missing) zlib的文章咨询供您阅读,如何使用Python安装setuptools时报 ...

  6. 自动发布工具版本从python2升级成python3后遇到的种种问题(涉及paramiko,Crypto,zipfile等等)

    从在公司实习到正式入职,一直还在被同事使用的是我写的一个自动发布工具.该工具的主要功能是:开发人员给出需要更新的代码包(zip格式),测试人员将该代码包部署到测服,这些代码包和JIRA数据库里的项目信 ...

  7. Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  8. 回味Python2.7——笔记4

    一.Python 标准库概览 1.操作系统接口 os 模块提供了很多与操作系统交互的函数: >>> import os >>> os.getcwd() # Retu ...

  9. python2/python3 内存中打包/压缩文件

    python2:(包含压缩选项,如果只打包,可以调整zipfile.ZIP_DEFLATED) import zipfile import StringIO class InMemoryZip(obj ...

  10. Python第二十天 shutil 模块 zipfile tarfile 模块

    Python第二十天  shutil 模块  zipfile   tarfile 模块 os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块shut ...

随机推荐

  1. 【JavaFx教程】第三部分:与用户的交互

    第3部分的主题: 在表中反应选择的改变(TableView中). 增加增加,编辑和删除按钮的功能. 创建自定义弹出对话框编辑人员. 验证用户输入. 响应表的选择 显然,我们还没有使用应用程序的右边.想 ...

  2. [翻译]C# BAD PRACTICES: Learn how to make a good code by bad example---C#:如何将坏的代码重新编译为好的代码

    自己的前言说明: 本文原作者:Radoslaw Sadowski,原文链接为:C# BAD PRACTICES: Learn how to make a good code by bad exampl ...

  3. 天梯赛2016-L2

    L2-001. 紧急救援 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在 ...

  4. Java 并发:Future FutureTask

    Future 当向一个ExecutorService提交任务后可以获得一个Future对象,在该对象上可以调用get,cancel等命令来获取任务运行值或者是取消任务.下面是一个简单的计数任务: pu ...

  5. js-对象深度克隆方法

    学习收藏. 1.来自http://www.cnblogs.com/yxz-turing/p/4784861.html function cloneObj(obj){ var str, newobj = ...

  6. JS获取填报扩展单元格控件的值

    1. 问题描述 填报预览时,我们想获取到某个控件的值相对来说较容易.但如果控件是扩展的,就只能获取到第一个值,无法根据扩展一行行获取对应的值. 例:本意是想获取到袁成洁,结果还是获取到第一个单元格值孙 ...

  7. 《JavaScript面向对象编程指南》

    第一章.引言 1.5 面向对象的程序设计常用概念 对象(名词):是指"事物"在程序设计语言中的表现形式. 这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作 ...

  8. 如何在 Azure 中自定义 Windows 虚拟机

    若要以快速一致的方式配置虚拟机 (VM),通常需要某种形式的自动化. 自定义 Windows VM 的一种常用方法是使用适用于 Windows 的自定义脚本扩展. 本教程介绍如何执行下列操作: 使用自 ...

  9. 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)

    之前一直用的EJB开发环境是他们搭建好的,直接拿来用,不过还是感觉老吃别人嚼好的不太好吃,所以自己动手来玩一玩. EJB开发依赖的最基本的环境:JDK.Eclipse.JBoss,这里简单介绍一下最基 ...

  10. python-ldap修改AD域用户密码(CA+SSL)

    代码连接:https://github.com/raykuan/ldap-notes 使用python的ldap模块连接AD服务器,有两种方式: 非加密:con = ldap.initialize(' ...