欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

网络爬虫--3.str和bytes的区别

发布时间:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 网络爬虫--3.str和bytes的区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一.bytes
  • 二.str和bytes相互转换
  • 三.bytearray

一.bytes

bytes对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。

bytes是Python 3中特有的,Python 2 里不区分bytes和str。

Python2 中

>>> type(b'xxxxx') <type 'str'> >>> type('xxxxx') <type 'str'>

Python3 中

>>> type(b'xxxxx') <class 'bytes'> >>> type('xxxxx') <class 'str'>

二.str和bytes相互转换

python3中:
str 使用encode方法转化为 bytes
bytes通过decode转化为str

In [9]: str1='人生苦短,我用Python!'In [10]: type(str1) Out[10]: strIn [11]: b=str1.encode()In [12]: b Out[12]: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\ xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'In [13]: type(str1.encode()) Out[13]: bytes In [22]: b Out[22]: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\ xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'In [23]: type(b) Out[23]: bytesIn [24]: b.decode() Out[24]: '人生苦短,我用Python!'In [25]: type(b.decode()) Out[25]: str

在Python 2中由于不区分str和bytes所以可以直接通过encode()和decode()方法进行编码解码。

而在Python 3中把两者给分开了这个在使用中需要注意。实际应用中在互联网上是通过二进制进行传输,所以就需要将str转换成bytes进行传输,而在接收中通过decode()解码成我们需要的编码进行处理数据这样不管对方是什么编码而本地是我们使用的编码这样就不会乱码。

三.bytearray

bytearray和bytes不一样的地方在于,bytearray是可变的。

In [26]: str1 Out[26]: '人生苦短,我用Python!'In [28]: b1=bytearray(str1.encode())In [29]: b1 Out[29]: bytearray(b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')In [30]: b1.decode() Out[30]: '人生苦短,我用Python!'In [31]: b1[:6]=bytearray('生命'.encode())In [32]: b1 Out[32]: bytearray(b'\xe7\x94\x9f\xe5\x91\xbd\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')In [33]: b1.decode() Out[33]: '生命苦短,我用Python!'

总结

以上是生活随笔为你收集整理的网络爬虫--3.str和bytes的区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。