bytes 与 str 转换

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

原文地址:https://www.cnblogs.com/yanshw/p/12642077.html

时间: 2024-12-19 08:28:17

bytes 与 str 转换的相关文章

[转]python str与bytes之间的转换

原文:http://www.cnblogs.com/zqifa/p/python-7.html # bytes object b = b"example" # str object s = "example" # str to bytes sb = bytes(s, encoding = "utf8") # bytes to str bs = str(b, encoding = "utf8") # an alternative

python str与bytes之间的转换

1 # bytes object 2 b = b"example" 3 4 # str object 5 s = "example" 6 7 # str to bytes 8 bytes(s, encoding = "utf8") 9 10 # bytes to str 11 str(b, encoding = "utf-8") 12 13 # an alternative method 14 # str to bytes 1

python3 中bytes与str类型

python3最重要的新特性之一就是对字符串和二进制流做了明确的区分.文本总是unicode,由str类型表示用于显示.二进制则是由bytes类型表示,用于存储和传输.bytes是byte的序列,而str是unicode的序列.Python3不会以任意隐式的方式混用str和bytes,不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然).也不能将字符串传入参数为字节流的函数(反之亦然). str与bytes之间的转换关系:str-->encode()-->bytes--->de

byte[] bytes和string转换

public static string ToHexString ( byte[] bytes ) // 0xae00cf => "AE00CF "        {            string hexString = string.Empty;            if ( bytes != null )            {                StringBuilder strB = new StringBuilder ();            

python3报错:TypeError: can&#39;t concat bytes to str

有时会报错这个:TypeError: Can't convert 'bytes' object to str implicitly 解决方法:使用字节码的decode()方法. 示例: str = 'I am string' byte = b' I am bytes' s = str + byte print(s) 这时会报错:TypeError: Can't convert 'bytes' object to str implicitly 解决方法: s = str + byte.decode

python3.5 的str类型和bytes类型的转换

在python3.x里增加了bytes类型,并且对str方法进行了修改,让str类型和bytes类型可以相互转换. #!/usr/bin/env python # -*- coding:utf-8 -*- a = "哈哈" #字符串转换成字节 b = bytes(a,encoding='utf-8') print(b) b1 = bytes(a,encoding='gbk') print(b1) #将字节转换成字符 c=str(b,encoding='utf-8') print(c)

Python3中内置类型bytes和str用法及byte和string之间各种编码转换

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 1 2 bytes([1,2,3,4,5,6,7,8,9]) bytes("python&q

python的bytes和str的转换

转换方式: 1.将字符串转换成二进制:encode(编码) 2.将二进制转换成字符串:decode(解码) 例子: (1) msg = "我爱北京" print(msg.encode('utf-8')) 结果:b'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac' (2) msg = "我爱北京" print(msg.encode('utf-8').decode('utf-8')) 结果:我爱北京 原文地址:https

bytes、str与unicode

1.Python3字符序列的类型 bytes -> 原始的8位值(既字节) str -> Unicode字符 2.Python2字符序列的类型 str -> 原始的8位值(既字节) unicode -> Unicode字符 即Python3的bytes对应Python2的str,而Python3的str对应Python2的unicode 写代码的时候不要对字符编码做任何的假设. 编写两个辅助函数来进行转换. 接受str或bytes,总是返回str: def to_str(bytes