Python3中内置类型bytes和str用法及byte和string之间各种编码转换是一个非常重要的问题,本文将为大家详细讲解。
bytes和str的用法
Python3中有两种表示文本的类型,分别是bytes和str。
str表示的是Unicode字符串,它的用法非常类似于Python2中的字符串类型;而bytes表示的是二进制数据,它的每个元素都是一个0~255之间的整数。
在Python3中,当我们需要处理文本时,我们通常会将文本转换为str类型,而当我们需要进行二进制数据的读写时,我们则需要使用bytes类型。
bytes和str之间的编码
在Python3中,bytes和str类型之间的转换需要指定编码方式,通常我们使用的是UTF-8编码。
示例代码1:将str转换为bytes
# 将字符串转换为二进制数据
s = 'hello, world!'
b = s.encode('UTF-8')
print(b)
示例代码2:将bytes转换为str
# 将二进制数据转换为字符串
b = b'hello, world!'
s = b.decode('UTF-8')
print(s)
bytes和str的常用操作
bytes和str分别拥有自己的一些常用操作,下面分别进行介绍。
str的常用操作
- 拼接字符串
# 拼接字符串
s1 = 'hello'
s2 = 'world'
s3 = s1 + ' ' + s2
print(s3)
- 格式化字符串
# 格式化字符串
name = 'John'
age = 28
print('My name is %s, and I am %d years old.' % (name, age))
bytes的常用操作
- 拼接bytes数据
# 拼接byte数据
b1 = b'hello'
b2 = b'world'
b3 = b1 + b' ' + b2
print(b3)
- 操作bytes数据的每个元素
# 操作byte数据的每个元素
b = b'hello'
for i in b:
print(i)
byte和string之间的各种编码转换
在进行编码转换时,我们通常使用的是Python中的标准库中的codecs
模块。
将str转换为bytes
import codecs
# 将str转换为bytes
s = 'hello world'
b = codecs.encode(s, 'utf-8')
print(b)
将bytes转换为str
import codecs
# 将bytes转换为str
b = b'hello world'
s = codecs.decode(b, 'utf-8')
print(s)
将str转换为其它编码格式的bytes
import codecs
# 将str转换为其它编码格式的bytes
s = '你好,世界'
b = codecs.encode(s, 'GBK')
print(b)
将其它编码格式的bytes转换为str
import codecs
# 将其它编码格式的bytes转换为str
b = b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'
s = codecs.decode(b, 'GBK')
print(s)
以上就是“Python3中内置类型bytes和str用法及byte和string之间各种编码转换问题”的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题 - Python技术站