python3 bytes转为str,str是python的数据类型吗
Python最重要的新特性之一是明确区分字符串和二进制数据流。下面这篇文章主要介绍Python中bytes和str的区别和联系的相关信息,有需要的可以参考一下。
00-1010 Bytes和Str的区别Bytes和Str读写文件注意事项总结
目录
在Python3中,有两种类型的字符序列:字节和字符串。Bytes类型是无符号的8位值(通常在ASCII代码中是显式的),而str类型是Unicode码位。点是指编码字符集中对应于一个字符的数字。
a=b“你好世界”
print(isinstance(a,字节))
打印(列表(a))
打印(一份)
真实的
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
“你好世界”
“你好,世界”
print(isinstance(a,str))
打印(列表(a))
打印(一份)
真实的
[h , e , l , l , o , , w , o , r , l , d]
你好世界
isinstance()方法可以确定一个对象的类型,比如这里用它来确定是str还是bytes。
Python3对文本(str)和二进制数据(bytes)有严格的区分,不能混用。
x=b“python”
y=bjava
z=c
w=c
打印(x y)
# b“python Java”
打印(黑白)
# c c
打印(x z)
# TypeError:无法将字符串连接到字节
print(python==bpython )
#错误
在上面的例子中,在str类型和bytes类型之间使用=来比较它们是否相等不会给出错误,但会返回False。
Bytes和Str的区别
类型字符串和字节可以相互转换。
需要调用encode()方法来转换为strbytes。
需要调用decode()方法将字节转换为字符串。
x=b“python”
y=x.decode(编码=utf-8 )
z=y.encode(编码=utf-8 )
打印(y)
打印(z)
大蟒
“python”
可以看到,encode()和decode()方法都有一个编码参数来指定特定的编码规则。
Bytes与Str间的转换
将bytes类型写入文件时,必须指定mode=wb。读取二进制文件时,可以指定mode=rb或编码方法。当使用后者时,读出的字符序列不是字节类型。
x=b“python”
#错误示例
用open(data.bin ,mode=w )作为fp:
fp.write(x)
# TypeError: write()参数必须是字符串,而不是字节
#正确示例
用open(data.bin ,mode=wb )作为fp:
fp.write(x)
#读取二进制文件的方法1
用open(data.bin ,mode=rb )作为fp:
content=fp.read()
打印(内容)
# python
#读取二进制文件的方法2
用open(data.bin ,mode=r ,encoding=utf-8 )作为fp:
content=fp.read()
打印(内容,类型(内容))
# python类“str”
在读写Unicode数据时,只需要注意编码方法,最好是显式传递编码参数。
X=你好,世界
用open(data.txt ,mode=w ,encoding=utf-8 )作为fp:
fp.write(x)
用open(data.txt ,mode=r ,encoding=utf-8 )作为fp:
content=fp.read()
打印(内容)
#你好,世界
#错误示例,编码方式错误。
用open(data.txt ,mode=r ,encoding=gbk )作为fp:
content=fp.read()
打印(内容)
#怎么了?
读写文件的注意事项
关于Python中bytes和str的区别和联系的文章到此为止。更多关于Python中Bytes和str的区别,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。