在本教程中,我們將學習如何使用 Python 腳本將位元組轉換為字元串。我們還將探索如何有效地使用這些數據類型。我們在本教程中包含 Python 3 方法,因為 Python 2 不再使用了。在深入挖掘這個主題之前,首先我們需要了解一下 Byte 數據類型的基本介紹。
如果一個人熟悉 Python ,那麼他/她一定已經知道位元組數據類型。但是如果有人對 Python 不友好,那麼我們將解釋這個概念。讓我們理解下面的例子。
示例-
string1 = 'Welcome to JavaTpoint'
print(type(string1))
string2 = b'Welcome to JavaTpoint'
print(type(string2))
輸出:
<class 'str'>
<class 'bytes'>
解釋
我們用相同的值定義兩個字元串。兩個值看起來相似,但數據類型不同。第一個 string1 變數是一個字元串數據類型,另一個是一個位元組數據類型。第二個 string2 變數的前綴是『b』,這意味著它產生的是位元組數據類型,而不是字元串數據類型。
這兩種數據類型之間的區別是
Str – 字元串是 Unicode 字元的序列(以 UTF -16 或 UTF-32 編碼,完全取決於 Python 的編譯)。
Bytes 或 byte – 表示 0 到 255 之間的整數,我們可以表示為『b』或『b』
我們可以通過在常規字元串前面寫「be literal」將任何字元串轉換為位元組。
字元串和位元組的關鍵區別
str 和 bytes 兩種數據類型在 Python 2.x 中都被用作 byte 類型對象,但在 Python 3.x 的情況下就不是這樣了,位元組和 string 的關鍵區別在於字元串容易讀取或者是人可讀的,其中一個位元組最終是機器可讀的,字元串在處理之前也會被轉換成 Byte。
當我們在 Python 中聲明一個位元組數據類型時,它直接存儲在磁碟中,一個字元串被轉換成一個位元組,然後存儲在磁碟上。
字元串用於表示字元、單詞或句子,而位元組表示低級二進位數據結構。
- 使用解碼()方法
Python 提供了內置的 decode() 方法,用於將位元組轉換為字元串。讓我們理解下面的例子。
示例-
byteData = b"Lets eat a \xf0\x9f\x8d\x95!"
# Let's check the type
print(type(byteData))
str1 = byteData.decode('UTF-8')
print(type(str1))
print(str1)
輸出:
<class 'bytes'>
<class 'str'>
Lets eat a ?!
```py
**解釋-**
我們在上面的代碼中傳遞了編碼格式,將 bytes 對象解碼成一個字元串,並列印出來。
* **使用位元組來串編編解碼器**
我們還可以使用 ***編解碼器*** 模塊將位元組數據類型轉換為字元串。
**示例-**
import codecs
byteData = b’Lets eat a \xf0\x9f\x8d\x95!’
codecs.decode(byteData, ‘UTF-8’)
**輸出:**
Lets eat a ?
* **使用 str()**
將位元組轉換為字元串是最簡單的方法。讓我們理解下面的例子。
**示例-**
byteData = b’Lets eat a \xf0\x9f\x8d\x95!’
b1 = str(byteData, ‘UTF-8’)
print(b1)
**輸出:**
Lets eat a ?&!
需要將編碼參數傳遞給 **str()** 否則會得到一些意想不到的結果。錯誤的編碼導致不正確的輸出。**例如-** 如果我們用 UTF-16 傳遞 **str()** 方法,會得到如下錯誤。
str(b, ‘UTF-16’)
**輸出:**
‘敵❴\u2073 牧扡慍\uf020 趟↕’
## 結論
本教程將幫助您處理位元組數據類型。就像字符集一樣,編碼和二進位被用來編碼和解碼。我們已經定義了將位元組數據類型轉換為字元串的各種方法。
* * *
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127093.html