[384]python之binascii模块

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

#coding:utf-8

import binascii

a = b'worker'
#先把worker转换成二进制数据然后在用十六进制表示
b = binascii.b2a_hex(a)
print(b)
#与b2a_hex相反
print(binascii.a2b_hex(b))
#这个功能和b2a_hex()一样
c = binascii.hexlify(a)
print(c)
#这个功能和a2b_hex()一样
print(binascii.unhexlify(c))
######运行结果######
b'776f726b6572'
b'worker'
b'776f726b6572'
b'worker'

python内置函数:

hex():
#把10进制转整形换成16进制
>>> hex(88)
'0x58'

#把浮点型转换成16进制
>>> 1.23.hex()
'0x1.3ae147ae147aep+0'

#内置函数hex和binascii.hexlify()的区别就在于,hex只能接受整形不能接受字符串
>>> hex('88')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    hex('88')
TypeError: hex() argument can't be converted to hexbin():ba 


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

bin():把十进制整形转换成二进制字符

#把十进制整型转换成二进制
>>> bin(88)
'0b1011000'
>>> bin(33)
'0b100001' 

oct():把十进制转换成八进制字符

#把十进制转换成八进制
>>> oct(500)
'0764'
>>> oct(488)
'0750' 

chr():把一个整形转换成ASCII码表中对应的单个字符 ,该参数必须是在范围[0..255]。

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

#把一个整形转换成ASCII码表中对应的单个字符
>>> chr(98)
'b'
>>> chr(97)
'a' 

ord():和chr相反,把ASCII码表中的字符转换成对应的整形

>>> ord('b')
98
>>> ord('c')
99

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周小董

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值