bytes 与 str 转换

折月煮酒 提交于 2020-04-07 19:50:11

Python3 最重要的特性之一就是对 字符串 和 二进制字节 做了明确且严格的区分,之所以说严格,是指二者在任何情况下不能混用;

 

文本总是 Unicode,由字符串 str 表示;

二进制数据由 bytes 表示;

file1 = open('data.txt', 'r')
out1 = file1.read()
print(type(out1))       # <class 'str'>

### 以二进制方式读取
file2 = open('data.txt', 'rb')
out2 = file2.read()
print(type(out2))       # <class 'bytes'>

# print(out1 + out2)      # TypeError: must be str, not bytes

 

二者相互转换

b = b'hello'
s = 'world'

print(type(b))      # <class 'bytes'>
print(type(s))      # <class 'str'>


### btyes to str
# def __init__(self, value='', encoding=None, errors='strict')
bs1 = str(b, encoding='utf-8')

# def decode(self, *args, **kwargs)
bs2 = bytes.decode(b, encoding='utf-8')
print(type(bs1), type(bs2))         # <class 'str'> <class 'str'>


### str to bytes
# def __init__(self, value=b'', encoding=None, errors='strict')
sb1 = bytes(s, encoding='utf-8')

# def encode(self, encoding='utf-8', errors='strict')
sb2 = str.encode(s, encoding='utf-8')
print(type(sb1), type(sb2))         # <class 'bytes'> <class 'bytes'>

用图总结转换方法

 

 

 

 

 

参考资料:

https://www.ituring.com.cn/article/1116

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!