您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中bytes字節(jié)串和string字符串之間如何轉(zhuǎn)換,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在工作中經(jīng)常會碰到字節(jié)串(bytes)與字符串(string)之間轉(zhuǎn)換的問題,做個(gè)記錄。
bytes只負(fù)責(zé)用字節(jié)序列的形式(二進(jìn)制形式)存儲數(shù)據(jù),不關(guān)心數(shù)據(jù)本身是圖片、文字、視頻等等。如果需要使用并且展示的話,按照對應(yīng)的解析規(guī)則處理,就可以拿到對應(yīng)類型的數(shù)據(jù)。如常見的字符串類型,只需要使用對應(yīng)的字符編碼格式,就可以拿到字符串的內(nèi)容。
先看一下代碼。
#!/user/bin/env python # coding=utf-8 """ @project : csdn @author : huyi @file : byte_to_string.py @ide : PyCharm @time : 2021-12-23 11:47:45 """ # 不指定字符集 b1 = b'I love u , baby' print('b1', b1) print(b1[:-3]) # 指定字符集 b2 = bytes('今天天氣真好/哈哈', encoding='UTF-8') print('b2', b2) # 字符串轉(zhuǎn)為bytes str1 = '元宇宙會導(dǎo)致人類文明的停滯嗎?' b3 = str1.encode('UTF-8') print('b3', b3) # bytes轉(zhuǎn)為字符串方法1 str2 = str(b3, 'UTF-8') print('str2', str2) # bytes轉(zhuǎn)為字符串方法1 str3 = b3.decode('UTF-8') print('str3', str3)
1、可以使用字符串前面加小寫字母b的方式定義bytes,但是不建議,建議使用b2的定義方式,可以調(diào)整字符編碼。
2、字符串類型的數(shù)據(jù)可以通過encode方法,將字符串按照字符編碼轉(zhuǎn)為bytes。
3、bytes也可以通過str的構(gòu)造指定字符編碼或者decode方法,將bytes轉(zhuǎn)為字符串。
PyDev console: starting. Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32 runfile('D:/spyder/csdn/tool/byte_to_string.py', wdir='D:/spyder/csdn/tool') b1 b'I love u , baby' b'I love u , b' b2 b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\xa4\xa9\xe6\xb0\x94\xe7\x9c\x9f\xe5\xa5\xbd/\xe5\x93\x88\xe5\x93\x88' b3 b'\xe5\x85\x83\xe5\xae\x87\xe5\xae\x99\xe4\xbc\x9a\xe5\xaf\xbc\xe8\x87\xb4\xe4\xba\xba\xe7\xb1\xbb\xe6\x96\x87\xe6\x98\x8e\xe7\x9a\x84\xe5\x81\x9c\xe6\xbb\x9e\xe5\x90\x97\xef\xbc\x9f' str2 元宇宙會導(dǎo)致人類文明的停滯嗎? str3 元宇宙會導(dǎo)致人類文明的停滯嗎?
1.python bytes 也稱字節(jié)序列,并非字符。取值范圍 0 <= bytes <= 255,輸出的時(shí)候最前面會有字符b修飾;string 是python中字符串類型;
2.bytes主要是給在計(jì)算機(jī)看的,string主要是給人看的;
3.string經(jīng)過編碼encode,轉(zhuǎn)化成二進(jìn)制對象,給計(jì)算機(jī)識別;bytes經(jīng)過解碼decode,轉(zhuǎn)化成string,讓我們看,但是注意反編碼的編碼規(guī)則是有范圍,\xc8就不是utf8識別的范圍;
if __name__ == "__main__": # 字節(jié)對象b b = b"shuopython.com" # 字符串對象s s = "shuopython.com" print(b) print(type(b)) print(s) print(type(s))
輸出結(jié)果:
b'shuopython.com'
<class 'bytes'>
shuopython.com
<class 'str'>
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中bytes字節(jié)串和string字符串之間如何轉(zhuǎn)換”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。