千家信息网

Python中bytes字节串和string字符串之间如何转换

发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章主要介绍了Python中bytes字节串和string字符串之间如何转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景在工
千家信息网最后更新 2024年10月22日Python中bytes字节串和string字符串之间如何转换

这篇文章主要介绍了Python中bytes字节串和string字符串之间如何转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

背景

在工作中经常会碰到字节串(bytes)与字符串(string)之间转换的问题,做个记录。

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) # 字符串转为bytesstr1 = '元宇宙会导致人类文明的停滞吗?'b3 = str1.encode('UTF-8')print('b3', b3) # bytes转为字符串方法1str2 = str(b3, 'UTF-8')print('str2', str2) # bytes转为字符串方法1str3 = 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 win32runfile('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__":# 字节对象bb = b"shuopython.com"# 字符串对象ss = "shuopython.com"print(b)print(type(b))print(s)print(type(s))

输出结果:

b'shuopython.com'

shuopython.com

感谢你能够认真阅读完这篇文章,希望小编分享的"Python中bytes字节串和string字符串之间如何转换"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0