在本教程中,我們將學習如何使用 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-hant/n/127093.html