python-bytes、bytearray和str在python2和3中的区别

概括

python2中bytes与str可以混用,python3中bytes是不可改变的,需要转化,bytearray则是可变的bytes。
首先str是采用Unicode编码方式的序列,主要用于显示。而bytes是字节序列,主要用于网络和文件传输。在aes解密或者网络数据中,数据应该是bytes或bytearray。str和bytes的相互转化就是编码和解码。
此外在python3中,bytes can only contain ASCII literal characters.

python2

在这里插入图片描述

python3

在这里插入图片描述

str到bytes

encode里可以指定编码格式,如’utf-8’。ascii码可以直接用b’'转化。

data=bytes("白日依山尽".encode())

str到bytearray

data=bytearray("白日依山尽".encode())

bytes到bytearray

bytes=b"aabbcc"
byarray=bytearray(bytes)

bytearray到str

str=byarray.decode('utf-8')
bytes=bytes(byarray)

常见的网络传输时,有hex字符串转为bytearray的需求可以使用bytearray.fromhex(),这时是不需要编码的。

hexstr="098811"
byarray=bytearray.fromhex(hexstr)
print(byarray)
bytearray(b'\t\x88\x11')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值