非常教程

Python参考手册

数据压缩 | Data Compression

bz2

2.3版本的新功能。

该模块为bz2压缩库提供了一个全面的界面。它实现了一个完整的文件接口,一次性(解除)压缩功能,以及用于顺序(反)压缩的类型。

以下是bz2模块提供的功能摘要:

  • BZ2File类实现一个完整的文件接口,包括readline()readlines()writelines()seek(),等;
  • BZ2File类实现模拟seek()支持;
  • BZ2File 类实现通用换行支持;
  • BZ2File 类使用从文件对象借用的readahead算法提供优化的行迭代;
  • BZ2CompressorBZ2Decompressor类支持的顺序(反)压缩;
  • compress()decompress()功能支持的一次性(去)压缩;
  • 线程安全使用单独的锁定机制。

1.(解压缩)文件

处理压缩文件是由BZ2File课程提供的。

class bz2.BZ2File(filename[, mode[, buffering[, compresslevel]]])

打开一个bz2文件。模式可以是'r'或者'w',用于阅读(默认)或写作。当打开写入时,如果该文件不存在,则该文件将被创建,否则将被截断。如果给出缓冲0意味着无缓冲,而较大的数字指定缓冲区大小; 默认是0。如果给出了压缩级别,它必须是介于1和之间的数字9; 默认是9。添加'U'到模式以通用换行模式打开文件进行输入。任何以输入文件结尾的行将被视为'\n'Python中的行。另外,如此打开的文件将获得该属性newlines; 该属性的值是一个None(没有新行读还), ,,'\r''\n''\r\n'或者包含所有可见的新行类型的元组。通用换行符仅在阅读时可用。实例以与正常file实例相同的方式支持迭代。

BZ2File支持该with声明。

在版本2.7中进行了更改:with添加了对语句的支持。

注意

该类不支持包含多个流的输入文件(例如由pbzip2工具生成的文件)。当读取这样的输入文件时,只有第一个流将被访问。如果您需要支持多流文件,请考虑使用第三方bz2file模块(可从PyPI获得)。这个模块提供了Python 3.3的BZ2File类的后端,它支持多流文件。

close()

关闭文件。将数据属性设置closed为true。封闭的文件不能用于进一步的I / O操作。close()可能会不止一次地被调用。

read([size])

读取大多数大小的未压缩字节,以字符串形式返回。如果size参数为负值或省略,请阅读,直到达到EOF。

readline([size])

从文件中返回下一行,作为字符串保留换行符。非负大小参数限制了返回的最大字节数(然后可能会返回一个不完整的行)。在EOF处返回空字符串。

readlines([size])

返回读取的行列表。如果给出可选的大小参数,则返回的行中的总字节数的近似范围。

xreadlines()

为了向后兼容。BZ2File对象现在包含之前在xreadlines模块中执行的性能优化。

自从版本2.3开始不推荐使用:这仅适用于与file对象上的此名称的方法的兼容性,不建议使用此名称。for line in file改为使用。

seek(offset[, whence])

移动到新的文件位置。参数偏移量是一个字节数。可选参数whence缺省为os.SEEK_SET0(从文件起始位置偏移; offset应该是>= 0); 其它值os.SEEK_CUR1(移动相对于当前位置;偏移可为正或负),和os.SEEK_END2(相对移动到文件结尾的;偏移通常是负的,虽然许多平台允许寻求超出文件的结尾)。

请注意,模拟寻找bz2文件,并根据参数操作可能会非常缓慢。

tell()

返回当前文件的位置,一个整数(可能是一个长整数)。

write(data)

将字符串数据写入文件。请注意,由于缓冲,close()可能需要在磁盘上的文件反映写入的数据之前。

writelines(sequence_of_strings)

将字符串序列写入文件。请注意,不添加换行符。该序列可以是任何可生成字符串的可迭代对象。这相当于为每个字符串调用write()。

2.顺序(反)压缩

顺序压缩和解压缩使用类BZ2CompressorBZ2Decompressor

class bz2.BZ2Compressor([compresslevel])

创建一个新的压缩机对象。这个对象可以用来顺序压缩数据。如果您想一次压缩数据,请改用该compress()功能。的compresslevel参数,如果给定的,必须之间的数字19; 默认是9

compress(data)

向压缩机对象提供更多数据。它会尽可能地返回压缩数据块。当您完成提供数据压缩时,调用该flush()方法来完成压缩过程,并返回内部缓冲区中留下的内容。

flush()

完成压缩过程并返回内部缓冲区中留下的内容。调用此方法后,您不得使用压缩器对象。

class bz2.BZ2Decompressor

创建一个新的解压缩器对象。该对象可用于顺序解压缩数据。如果您想一次性解压缩数据,请改用该decompress()功能。

decompress(data)

向解压缩器对象提供更多数据。它会尽可能地返回大量的解压缩数据。如果您在找到流结束后尝试解压缩数据,EOFError将会被提升。如果在数据流结束后发现任何数据,它将被忽略并保存在unused_data属性中。

3.一次压缩

通过compress()decompress()功能提供一次性压缩和解压缩。

bz2.compress(data[, compresslevel])

一次压缩数据。如果要按顺序压缩数据,请使用BZ2Compressor替代的实例。的compresslevel参数,如果给定的,必须之间的数字19; 默认是9

bz2.decompress(data)

一次性解压缩数据。如果要按顺序解压缩数据,请使用BZ2Decompressor替代的实例。

数据压缩 | Data Compression相关

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法