网络爬虫--3.str和bytes的区别
生活随笔
收集整理的這篇文章主要介紹了
网络爬虫--3.str和bytes的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 一.bytes
- 二.str和bytes相互轉(zhuǎn)換
- 三.bytearray
一.bytes
bytes對(duì)象只負(fù)責(zé)以二進(jìn)制字節(jié)序列的形式記錄所需記錄的對(duì)象,至于該對(duì)象到底表示什么(比如到底是什么字符)則由相應(yīng)的編碼格式解碼所決定。
bytes是Python 3中特有的,Python 2 里不區(qū)分bytes和str。
Python2 中
>>> type(b'xxxxx') <type 'str'> >>> type('xxxxx') <type 'str'>Python3 中
>>> type(b'xxxxx') <class 'bytes'> >>> type('xxxxx') <class 'str'>二.str和bytes相互轉(zhuǎn)換
python3中:
str 使用encode方法轉(zhuǎn)化為 bytes
bytes通過decode轉(zhuǎn)化為str
在Python 2中由于不區(qū)分str和bytes所以可以直接通過encode()和decode()方法進(jìn)行編碼解碼。
而在Python 3中把兩者給分開了這個(gè)在使用中需要注意。實(shí)際應(yīng)用中在互聯(lián)網(wǎng)上是通過二進(jìn)制進(jìn)行傳輸,所以就需要將str轉(zhuǎn)換成bytes進(jìn)行傳輸,而在接收中通過decode()解碼成我們需要的編碼進(jìn)行處理數(shù)據(jù)這樣不管對(duì)方是什么編碼而本地是我們使用的編碼這樣就不會(huì)亂碼。
三.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!'總結(jié)
以上是生活随笔為你收集整理的网络爬虫--3.str和bytes的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: api接口怎么对接_系统对接项目管理方面
- 下一篇: 网络爬虫--11.XPath和lxml