Python中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) print(b1[:-3]) # 指定字符集 b2 = bytes('今天天气真好/哈哈', encoding='utf-8') print('b2', b2) # 字符串转为bytes str1 = '元宇宙会导致人类文明的停滞吗?' b3 = str1.encode('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'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\xa4\xa9\xe6\xb0\x94\xe7\x9c\x9f\xe5\xa5\xbd/\xe5\x93\x88\xe5\x93\x88' b3 b'\xe5\x85\x83\xe5\xae\x87\xe5\xae\x99\xe4\xbc\x9a\xe5\xaf\xbc\xe8\x87\xb4\xe4\xba\xba\xe7\xb1\xbb\xe6\x96\x87\xe6\x98\x8e\xe7\x9a\x84\xe5\x81\x9c\xe6\xbb\x9e\xe5\x90\x97\xef\xbc\x9f' str2 元宇宙会导致人类文明的停滞吗? str3 元宇宙会导致人类文明的停滞吗?
附:bytes和string区别
1.python bytes 也称字节序列,并非字符。取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰;string 是python中字符串类型;
2.bytes主要是给在计算机看的,string主要是给人看的;
3.string经过编码encode,转化成二进制对象,给计算机识别;bytes经过解码decode,转化成string,让我们看,但是注意反编码的编码规则是有范围,\xc8就不是utf8识别的范围;
if __name__ == "__main__": # 字节对象b b = b"shuopython.com" # 字符串对象s s = "shuopython.com" print(b) print(type(b)) print(s) print(type(s))
输出结果:
b'shuopython.com'
<class 'bytes'>
shuopython.com
<class 'str'>
总结
到此这篇关于python中bytes字节串和string字符串之间转换的文章就介绍到这了,更多相关python bytes字和string转换内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 电商平台有哪些,国内知名电商平台排名
下一篇: 元旦节都干啥
推荐阅读
-
解决无法在unicode和非unicode字符串数据类型之间转换的方法详解
-
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
-
C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法
-
解决无法在unicode和非unicode字符串数据类型之间转换的方法详解
-
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
-
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
-
Python 字符串转换为整形和浮点类型的方法
-
Python中实现字符串类型与字典类型相互转换的方法
-
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
-
C#中Byte[]和String之间转换的方法