4.2 codecs--Codec注册管理和基类(2)

codecs.register(search_function) 注册一个codec的搜索函数。搜索函数要求能输入一个参数,编码器的名称以小写字母命名,如果成功找到返回CodecInfo对象,否则返回None。例子:def add_cp65001_codec():  try:    codecs.lookup('cp65001')  except LookupError:    codecs.re...
阅读(2115) 评论(3)

4.2 codecs--Codec注册管理和基类

本模块定义了Python标准codecs(编码和解码)的基类,也提供了对Python内部codec的注册,管理和数据处理过程。大部分标准的codecs都是文本编解码器,主要是用来把文本怎么样编码成字节方式。不过也有一些codecs是用来从文本到文本的编码方式,或者从字节到字节的编码方式。当然也可以根据基类来定制codecs,可以任意间的数据类型进行转换,只要注意在某些codecs是限制在文本编解码...
阅读(1544) 评论(3)

4.1.2.3 格式字符例子

采用小端模式进行解包,并赋值例子:#python 3.4.3 import struct record = b'raymond \x32\x12\x08\x01\x08' name, serialnum, school, gradelevel = struct.unpack('<10sHHb', record) print(name, serialnum, school, gradeleve...
阅读(1447) 评论(2)

4.1.2 格式字符串

格式字符串是用来指定打包和解包时对数据排列的机制。因此在内部定义了一系列格式字符,通过这些字符来表示数据的类型,另外也定义一些字符来表示数据放入顺序、大小和对齐的方式。4.1.2.1 字节顺序、大小和对齐方式默认情况下,C语言定义一个结构是按原始格式保存的,包括字节放入顺序,合适填充空白字节,主要根据C语言编译器来决定。在Python语言里,需要在格式字符串前面使用一个字符来表示结构里保存字节的顺...
阅读(1408) 评论(1)

4. 二进制数据处理库

二进制处理库主要是针对二进制数据的操作和使用,也有介绍一些特定的操作,比如像文件格式和网络协议。在前面也介绍了文本处理库,其实有一部分功能也是能处理二进制数据的,比如正则表达式re,或者是difflib比较库对数据进行处理。此外,在python内部也提供了bytes/bytearray/memoryview等数据类型进行操作。4.1 struct--二进制数据打包和解包本模块主要对python的数...
阅读(1836) 评论(0)

3.6 stringprep--互联网域名的字符标准库

本库主要提供访问RFC3454定义的UNICODE字符集。当我们需要比较互联网的域名是否相同时就需要比较互联网上主机名称是否相同,更确切地说就是比较应用程序的域名称,比如是否大小写有区分。又或者限制在可打印的字符集合的字符组成域名。本库封装对RFC 3454的字符表访问,如果全部使用字典或者列表来表示会比较大,目前使用像UNICODE数据库的形式来保存,这样就可以很方便访问,因此需要使用工具mks...
阅读(1768) 评论(0)

3.5 unicodedata--Unicode数据库

本库主要提供访问UCD相关内容的库。UCD是Unicode字符数据库(Unicode Character DataBase)的缩写。UCD由一些描述Unicode字符属性和内部关系的纯文本或html文件组成。UCD中的文本文件大都是适合于程序分析的Unicode相关数据。其中的html文件解释了数据库的组织,数据的格式和含义。UCD中最庞大的文件无疑就是描述汉字属性的文件Unihan.txt。在U...
阅读(2862) 评论(0)

3.4 textwrap--格式化文本库(2)

textwrap.fill(text, width=70, **kwargs)格式化文本,跟函数wrap的功能一样,只不过它返回的不是列表方式,而一段连接一起的文本。可以认为等价于下面的代码:“\n”.join(wrap(text, ...))参数与wrap参数是一样的功能。例子:#python 3.4.3 import textwrap text = 'this for test!'format...
阅读(2296) 评论(0)

3.4 textwrap--格式化文本库

本库主要提供一些转换函数来实现文本的格式化,它的功能与类TextWrapper是一样的,不过在处理比较小的文本时是合适的,如果需要处理大量文本还是使用类TextWrapper效率更高,更加合适。 textwrap.wrap(text, width=70, **kwargs) 格式化一段文本字符串,按指定的width宽度进行自动动换行,结束行没有新的换行。返回一个分行保存的列表。参数text是输入进...
阅读(1428) 评论(0)

3.3.10 使用difflib.unified_diff函数

可以使用本函数来生成统一的差异结果文本,只要拿到第一个文本,再通过这个差异文本进行操作,就可以得到第二个文本,从而减少储存两份文件,缩小储存空间。例子:#python3.4.3 import difflib diff = difflib.unified_diff('one\ntwo\nthree\n'.splitlines(keepends=True), 'ore\n...
阅读(1745) 评论(0)

3.3.8 使用difflib.ndiff函数

3.3.8 使用difflib.ndiff函数按行进行比较,然后输出一个差别报告。例子:#python3.4.3 import difflib diff = difflib.ndiff('one\ntwo\nthree\n'.splitlines(keepends=True),             'ore\ntree\nemu\n'.splitlines(keepends=True))pri...
阅读(2004) 评论(0)
    个人资料
    • 访问:5574818次
    • 积分:72912
    • 等级:
    • 排名:第25名
    • 原创:1584篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2082条
    文章存档
    最新评论