Python中模块的使用--binascii模块用法

目录

  • binascii模块用法
  • binascii模块和进制转换笔记
    • Python内置函数

binascii模块用法 binascii模块用于在二进制和ASCII之间转换
>> import binascii# 将binary 转ascii并用十六进制表示>> str1 = b"hello world">> binascii.b2a_hex(b"hello world")# 输出 b'68656c6c6f20776f726c64'# 相反操作>> binascii.a2b_hex(b'68656c6c6f20776f726c64')# 输出b'hello world'>> binascii.hexlify(b"hello world")# 注解: 同b2a_hex(), 返回二进制 data 的十六进制表示。 data 的每个字节都转换为相应的2位十六进制表示。因此返回的字节对象的长度是 data 的长度的两倍。# 输出 b'68656c6c6f20776f726c64'>> binascii.unhexlify(b'68656c6c6f20776f726c64')# 注解: 同a2b_hex(), 返回由十六进制字符串 hexstr 表示的二进制数据。 hexstr 必须包含偶数个十六进制数字(可以是大写或小写),否则会引发 Error 异常。# 输出b'hello world'


binascii模块和进制转换笔记 废话少说,直接上代码:
# !/usr/bin/env python# -*- coding:utf-8 -*-# author:大西瓜 # 导入binascii模块import binascii a = b'BE27E8FFFF010203'# 先把b'BE27E8FFFF010203'转换成二进制数据然后在用十六进制表示b = binascii.b2a_hex(a)# 打印出:b'42453237453846464646303130323033',例如B对应ascii码42,E对应ascii码45print(b) # 与b2a_hex相反,打印出:b'BE27E8FFFF010203'print(binascii.a2b_hex(b)) # 这个功能和b2a_hex()一样# 打印出:b'42453237453846464646303130323033',例如B对应ascii码42,E对应ascii码45c = binascii.hexlify(a)print(c) # 这个功能和a2b_hex()一样,打印出:b'BE27E8FFFF010203'print(binascii.unhexlify(c))


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 "", line 1, in hex('88')TypeError: hex() argument can't be converted to hexbin():ba

  • bin():把十进制整形转换成二进制字符
#把十进制整型转换成二进制>>> bin(88)'0b1011000'>>> bin(33)'0b100001'oct():把十进制转换成八进制字符#把十进制转换成八进制>>> oct(500)'0764'>>> oct(488)'0750'

  • chr():把一个整形转换成ASCII码表中对应的单个字符
#把一个整形转换成ASCII码表中对应的单个字符>>> chr(98)'b'>>> chr(97)'a'ord():和chr相反,把ASCII码表中的字符转换成对应的整形>>> ord('b')98>>> ord('c')99

【Python中模块的使用--binascii模块用法】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读