python io.BytesIO簡介及示例代碼

io.BytesIO簡要介紹及示例

io.BytesIO 是 Python 內置的一個 I/O 類,用於在內存中讀寫二進制數據。它的作用類似於文件對象,但是數據並不是存儲在磁盤上,而是存儲在內存中的字節串。你可以像文件對象一樣對其進行讀寫、查找和截斷等操作。通常用來操作二進制數據,如圖片、音頻、視頻等。也可以用於測試或者臨時存儲數據。

代碼舉例:

import io
# 寫入二進制數據到 BytesIO 對象中
data = b"Hello, World!"
bio = io.BytesIO()
bio.write(data)
# 從 BytesIO 對象中讀取二進制數據
bio.seek(0)
read_data = bio.read()
print(read_data)  # 輸出 b'Hello, World!'

在這個示例中,我們首先使用 io.BytesIO() 創建瞭一個 BytesIO 對象 bio,然後使用 bio.write() 方法向其中寫入瞭一個二進制數據 data。接著我們使用 bio.seek(0) 將讀寫指針移動到起始位置,然後使用 bio.read() 方法從 BytesIO 對象中讀取瞭數據,並將其存儲在 read_data 變量中。最後我們輸出瞭 read_data,可以看到其與原來的二進制數據 data 完全相同。

輸出的為什麼是b開頭的

在 Python 中,以 b 開頭的字符串表示的是二進制字符串(bytes)。這種字符串是由字節組成的,每個字節都有一個對應的整數值,范圍在 0 到 255 之間。二進制字符串與普通字符串不同,因為普通字符串是由 Unicode 字符組成的,每個字符都對應一個 Unicode 碼點。

在上面的示例中,我們在 data 變量中存儲瞭一個二進制字符串,它以 b 開頭。因此,當我們從 BytesIO 對象中讀取數據並將其存儲在 read_data 變量中時,它也是一個二進制字符串,同樣以 b 開頭。這是 Python 對二進制字符串的一種標識方式,用於區分它們與普通字符串的不同。

bytes轉換成字符串

如果要將二進制字符串轉換成普通字符串,可以使用字符串的 decode() 方法。decode() 方法將一個字節串(bytes)轉換成一個字符串(str),需要指定一個編碼方式。在不知道編碼方式的情況下,可以使用默認編碼方式(通常為 UTF-8)。

下面是一個示例:

import io
# 寫入二進制數據到 BytesIO 對象中
data = b"Hello, World!"
bio = io.BytesIO()
bio.write(data)
# 從 BytesIO 對象中讀取二進制數據並轉換成字符串
bio.seek(0)
read_data = bio.read().decode()
print(read_data)  # 輸出 'Hello, World!'

在這個示例中,我們在讀取二進制數據後,使用 decode() 方法將其轉換成瞭一個普通字符串。如果不指定編碼方式,則默認使用 UTF-8 編碼。

到此這篇關於python io.BytesIO簡要介紹及示例的文章就介紹到這瞭,更多相關python io.BytesIO內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: