20.1 binascii:二进制和ASCII互转

作用:二进制和ASCII互相转换。

Python版本:1.5及以后版本

binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法。通常情况不会直接使用这些功能,而是使用像UU,base64编码,或BinHex封装模块。 binascii模块包含更高级别的模块使用的,用C语言编写的低级高效功能。

偶有使用于字符串和ASCII的转换,比如:

>>> s = 'hello'

>>> b = b2a_hex(s)

>>> print b

68656c6c6f

>>> a2b_hex(b)

'hello'

>>> b = hexlify(s)

>>> print b

68656c6c6f

>>> unhexlify(b)

'hello'

上面的函数hexlify和b2a_hex实际是一个函数,建议使用hexlify。作用是返回的二进制数据的十六进制表示。每一个字节的数据转换成相应的2位十六进制表示。因此产生的字串是源数据两倍长度。a2b_hex和unhexlify则执行反向操作。

注意区分hexlify和内置函数hex等的区别。Hex仅仅转换整数,使用字符串作为参数会报错。

>>> hex(23)

'0x17'

>>> hex(-23)

'-0x17

>>> hex('23')

Traceback (most recent call last):

File"", line 1, in

TypeError: hex() argument can't be converted to hex

>>>

另外浮点数转换为16进制的方法:float.hex(),比如:

>>> 1.03.hex()

'0x1.07ae147ae147bp+0'

int([x[,base]]) 转换字符串或者数值为整。参数为字符串的时候,必须制定进制base,默认进制是10,可以取[2,36]或者0。为0的时候,进制信息从字符串中获取。Int的返回为10进制的整数。输入为浮点数时,会进行靠近0截断处理。类似的内置函数有float,long等。

>>> int(0x17)

23

>>> int(-0x17)

-23

>>> int('23')

23

>>> int('1101',2)

13

>>> int('1101',36)

47953

>>> int('1101',8)

577

>>>

>>> int(11.92)

11

>>> int(-11.92)

-11

chr(i)返回ASCII码中整数对应的单个字符串。例如,chr(97)返回字符串'a'。和ord刚好相反。该参数必须是在范围[0..255]。

unichr(i)是chr的unicode版本,例如,unichr(97)返回字符串u'a'。参数的取值范围取决于Python如何配置 - 这可能是UCS2 [0..0xFFFF]或UCS4 [0..0x10FFFF]。

ord(c)chr和unichr的反向操作。例如,ord('a')返回整数97,ord(u'\u2020')返回8224。这是CHR()(8位字符串和unichr逆的unicode对象)。如果Python是基于UCS2编译,参数范围为[0 ..65535]包容性。

Hexlify的优势在于可以同时处理多个字符。下面2个操作有一定类似性,返回值都是字符串,不过hexlify去掉了’0x’。

>>> hex(ord('a'))

'0x61'

>>> hexlify('a')

'61'

函数列表:

binascii.a2b_uu(string)

binascii.b2a_uu(data)

binascii.a2b_base64(string)

binascii.b2a_base64(data)

binascii.a2b_qp(string[, header])

binascii.b2a_qp(data[, quotetabs, istext, header])

binascii.a2b_hqx(string)

binascii.rledecode_hqx(data)

binascii.rlecode_hqx(data)

binascii.b2a_hqx(data)

binascii.crc_hqx(data, crc)

binascii.crc32(data[, crc])

binascii.b2a_hex(data)

binascii.b2a_hex(data)

binascii.hexlify(data)

binascii.a2b_hex(hexstr)

binascii.unhexlify(hexstr)

异常有:

exception binascii.Error

exception binascii.Incomplete

相关模块:

Module base64

Support for base64 encoding used inMIME email messages.

Module binhexwww.2cto.com

Support for the binhex format used onthe Macintosh.

Module uu

Support for UU encoding used on Unix.

Module quopri

Support for quoted-printable encodingused in MIME email messages.

python ascii函数二进制_python模块介绍- binascii:二进制和ASCII互转以及其他进制转换...相关推荐

  1. python binascii.b2a_hex_python标准模块介绍- binascii 二进制和ASCII转换

    简介 binascii模块包含很多用来方法来转换二进制和各种ASCII编码的二进制表示法.通常不直接使用这些功能,而是使用封装模块,如uu, base64或binhex.binascii模块包含用C语 ...

  2. python字典函数大全_python字典介绍

    Python  字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括 ...

  3. 【数字电路基础】进制转换:二进制、十进制、八进制、十六进制、反码、补码、原码

    文章目录 一.无符号数进制转换 1.1.十进制转二.八.十六 1.1.1. 十进制转二进制 1.1.2. 十进制转八进制 1.1.2. 十进制转十六进制 1.2.二.八.十六转十进制 1.3 二进制转 ...

  4. python十进制转八进制_Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)...

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer num ...

  5. python十进制转八进制_python进制转换(二进制、十进制和十六进制)及注意事项...

    使用内置函数实现进制转换实现比较简单,主要用到以下函数: bin().oct().int().hex() 下面分别详解一下各个函数的使用(附实例) 第一部分:其他进制转十进制 1.二进制转十进制 使用 ...

  6. python format函数实例_Python字符串格式化,format格式化函数详细使用

    Python接触比较多的是字符串,那么操作字符串也就多.Python 支持格式化字符串的输出 . 尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的字符串中. 代码 ...

  7. python转换函数使用_python进制转换函数代码的使用

    python进制转换函数代码的使用 发布时间:2020-04-23 10:23:22 来源:亿速云 阅读:188 作者:小新 以上就是python进制转换函数代码的使用的详细内容了,看完之后是否有所收 ...

  8. python系统函数教程_Python入门基础教程之Python内置函数

    函数就是以功能为导向,一个函数封装一个功能,那么Python将一些常用的功能(比如len)给我们封装成了一个一个的函数,供我们使用,他们不仅效率高(底层都是用C语言写的),而且是拿来即用,避免重复早轮 ...

  9. python二进制转换为转义字符_Python字符与进制转换

    Python字符与进制转换 0b / 0B --> 二进制字符前缀 0o / 0O --> 八进制字符前缀 0x / 0X --> 十六进制字符前缀 ascii(object) 就 ...

最新文章

  1. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】
  2. Openstack 小知识点
  3. Symfony2 学习笔记之模板使用
  4. MongoDB 基础用法及学习笔记
  5. 成功解决AttributeError: module ‘tornado.web‘ has no attribute ‘asynchronous‘
  6. iOS CoreBluetooth 教程
  7. html 横屏内容显示不全_为什么我的文本显示不全?
  8. 【原创】erlang 模块之 epmd
  9. 中芯国际A股最终确定发行价27.46元 发行规模超50亿
  10. 搜索场景下的智能实体推荐
  11. #和妹妹一起做毕业设计#从需求到软件发布的流程记录—— 需求、设计篇
  12. [导入]一个asp中关于execute的测试
  13. Windows服务器系统的端口要求
  14. R语言制作长三角城市群空间权重矩阵及作图显示
  15. 指数基金投资指南读书笔记
  16. 设计模式【5】-- 原型模式
  17. 深度学习下的电商商品推荐
  18. Linux:inode与block,软硬链接,使用xfs相关命令备份与恢复文件和日志文件介绍
  19. AI行为识别:安防主动预警
  20. 【测试表征】你想要的表征,这里全都有!(一)

热门文章

  1. 判断为空:null、undefined、空字符串、中文空格
  2. [Nuxt.js]Nuxt项目启动如何跳过“Are you interested in participation?”
  3. 修改vscode的语言
  4. UE建筑可视化全局照明学习 Unreal Engine: Global Illumination for Arch. Visualization
  5. C++多线程:thread类创建线程的多种方式
  6. [Linux] 010 权限管理命令 chmod
  7. 好看的dialog,sweet Alert Dialog 导入Android Studio
  8. oracle使用小技巧
  9. CentOS中Mysql常用操作
  10. 将时间改为显示:几天前,几小时前,或者几分钟前