python3 bytes转为str,str是python的数据类型吗

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: