Python3中bytes和HexStr之间的转换

来源:互联网 发布:怎么运行mysql 编辑:程序博客网 时间:2024/05/16 08:53
在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:
hexstring 如:'1C532145697A8B6F'
str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'
list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。

需要用到的核心的方法如下:
list() 将对象转换为list
str() 将对象转换为str
bytearray() 将对象转换为bytearray
bytearray.fromhex() 将对象从hexstring转换为bytearray
binascii.b2a_hex() 将对象从str转换为hexstring

1. 整形列表转str

如:[0x53, 0x21, 0x6A] -> '\x53\x21\x6a'
方法:list -> bytearray -> str
[python] view plain copy
 
 
  1. x = [0x530x210x6A]  
  2. y = str(bytearray(x))  

2. str转整形列表

如:'\x53\x21\6a' -> [0x53, 0x21, 0x6A]
方法:逐个字符转成十进制
[python] view plain copy
 
 
  1. x = '\x53\x21\x6a'  
  2. y = [ord(c) for c in x]  

3. 整形列表转换为hex string

如: [0x53, 0x21, 0x6A] -> '53216A'
方法:list -> bytearray -> str -> hexstring
[python] view plain copy
 
 
  1. import binascii  
  2. x = [0x530x210x6A]  
  3. y = str(bytearray(x))  
  4. z = binascii.b2a_hex(y)  

4. hex string转换为整形列表

如: '53216A' -> [0x53, 0x21, 0x6A]
方法:hexstring -> bytearray -> list
[python] view plain copy
 
 
  1. x = '53216A'  
  2. y = bytearray.fromhex(x)  
  3. z = list(y)  

5. hex string转换为str

如: '53216A' -> '\x53\x21\x6A'
方法:hexstring -> bytearray -> str
[python] view plain copy
 
 
  1. x = '53216A'  
  2. y = bytearray.fromhex(x)  
  3. z = str(y)  
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玻璃饭盒加热后盖子打不开怎么办 玻璃饭盒盖子被吸住了怎么办 微波炉加热饭盒盖子打不开怎么办 铁饭盒盖子打不开了怎么办 塑料玻璃饭盒打不开了怎么办 方便火锅没有发热包怎么办 加热包的水溢出怎么办 军用黄脸盆坏了怎么办 白瓷洗手盆发黄怎么办 挎包没有拉链东西容易掉怎么办 斜挎包肩带长了怎么办 3个月宝宝不吃奶怎么办 米饭扔厕所堵了怎么办 门过梁搭接不够怎么办 华为g7开不了机怎么办 警务通手机丢了怎么办 手机被伪基站覆盖怎么办 听了高频率声音怎么办 qq音乐签到没了怎么办 手机qq音乐不能播放怎么办 台式电脑放歌没有声音怎么办 微信图片上传大愎怎么办 行车记录仪内存卡丢了怎么办 投资项目失败lp的钱怎么办 无线网无ip分配怎么办 为什么电脑的暴风影音打不开怎么办 电枪充电板进水怎么办 捡到一颗子弹该怎么办 防弹衣只保护身体那手臂怎么办? 被子被宝宝尿湿怎么办 眼睛被子弹打了怎么办 gta5买了2套衣服怎么办 gta5车被摧毁了怎么办 gta5车被损坏了怎么办 头盔玻璃磨花了怎么办 浇花喷水壶坏了怎么办 电力专用光缆撞了怎么办 国防电缆挖断了怎么办 国防光缆挖断了怎么办 房门前乱挂光纤线影响住户怎么办 挂断低于限高的光缆怎么办