Python中bytes字节串和string字符串之间的转换⽅法⽬录
背景
代码
代码说明:
验证⼀下
附:bytes和string区别
总结
背景
在⼯作中经常会碰到字节串(bytes)与字符串(string)之间转换的问题,做个记录。
bytes只负责⽤字节序列的形式(⼆进制形式)存储数据,不关⼼数据本⾝是图⽚、⽂字、视频等等。如果需要使⽤并且展⽰的话,按照对应的解析规则处理,就可以拿到对应类型的数据。如常见的字符串类型,只需要使⽤对应的字符编码格式,就可以拿到字符串的内容。
下⾯会⽤⼀些代码来表⽰bytes的构造,以及和字符串之间的转换。
代码
先看⼀下代码。
#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author : huyi
@file : byte_to_string.py
@ide : PyCharm
@time : 2021-12-23 11:47:45
"""
# 不指定字符集
b1 = b'I love u , baby'
print('b1', b1)
python代码转换print(b1[:-3])
# 指定字符集
b2 = bytes('今天天⽓真好/哈哈', encoding='UTF-8')
print('b2', b2)
# 字符串转为bytes
str1 = '元宇宙会导致⼈类⽂明的停滞吗?'
b3 = de('UTF-8')
print('b3', b3)
# bytes转为字符串⽅法1
str2 = str(b3, 'UTF-8')
print('str2', str2)
# bytes转为字符串⽅法1
str3 = b3.decode('UTF-8')
print('str3', str3)
代码说明:
1、可以使⽤字符串前⾯加⼩写字母b的⽅式定义bytes,但是不建议,建议使⽤b2的定义⽅式,可以调整字符编码。
2、字符串类型的数据可以通过encode⽅法,将字符串按照字符编码转为bytes。
3、bytes也可以通过str的构造指定字符编码或者decode⽅法,将bytes转为字符串。
验证⼀下
PyDev console: starting.
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32
runfile('D:/spyder/csdn/tool/byte_to_string.py', wdir='D:/spyder/csdn/tool')
b1 b'I love u , baby'
b'I love u , b'
b2 b' e4 bb 8a e5 a4 a9 e5 a4 a9 e6 b0 94 e7 9c 9f e5 a5 bd/ e5 93 88 e5 93 88'
b3 b' e5 85 83 e5 ae 87 e5 ae 99 e4 bc 9a e5 af bc e8 87 b4 e4 ba ba e7 b1 bb e6 96 87 e6 98 8e e7 9a 84 e5 81 9c e6 bb 9e e5 90 97 ef bc 9f'
str2 元宇宙会导致⼈类⽂明的停滞吗?
str3 元宇宙会导致⼈类⽂明的停滞吗?
附:bytes和string区别
1.python bytes 也称字节序列,并⾮字符。取值范围 0 <= bytes <= 255,输出的时候最前⾯会有字符b修饰;string 是python 中字符串类型;
2.bytes主要是给在计算机看的,string主要是给⼈看的;
3.string经过编码encode,转化成⼆进制对象,给计算机识别;bytes经过解码decode,转化成string,让我们看,但是注意反编码的编码规则是有范围, c8就不是utf8识别的范围;
if __name__ == "__main__":
# 字节对象b
b = b"shuopython"
# 字符串对象s
s = "shuopython"
print(b)
print(type(b))
print(s)
print(type(s))
输出结果:
b'shuopython'
<class 'bytes'>
shuopython
<class 'str'>
总结
到此这篇关于Python中bytes字节串和string字符串之间转换的⽂章就介绍到这了,更多相关Python bytes字和string转换内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论