博客 / 詳情

返回

Python 的內置函數 bytes

Python 的內置函數 bytes 是一個非常重要的數據類型,用於處理二進制數據。以下是關於 bytes 類型的詳細介紹:

  1. 基本概念

    • bytes 是不可變的字節序列,每個元素都是 0-255 之間的整數
    • str 類型不同,bytes 直接存儲原始字節數據而非Unicode字符
  2. 創建方式

    • 字面量語法:b'hello'b"\x48\x65\x6c\x6c\x6f"
    • bytes() 構造函數:

      • bytes(5) 創建包含5個零字節的對象
      • bytes([72, 101, 108, 108, 111]) 從整數列表創建
      • bytes('hello', encoding='utf-8') 從字符串轉換
  3. 常用操作

    • 索引和切片:data[0] 獲取第一個字節
    • 長度:len(data) 獲取字節數
    • 不可變性:不能直接修改元素值
    • 方法:decode(), hex(), split()
  4. 應用場景

    • 文件I/O操作(特別是二進制文件)
    • 網絡通信(socket數據傳輸)
    • 加密/解密操作
    • 圖像/音頻等多媒體處理
    • 與C語言接口交互
  5. 編碼轉換

    • 字符串轉bytes:'文本'.encode('utf-8')
    • bytes轉字符串:b'text'.decode('utf-8')
    • 注意編碼一致性,避免出現編解碼錯誤
  6. 與bytearray比較

    • bytearray 是可變版本,支持原位修改
    • bytes 更節省內存且線程安全
    • 性能差異在大多數場景下可以忽略

示例代碼:

# 創建bytes對象
data = bytes([0x48, 0x65, 0x6c, 0x6c, 0x6f])  # b'Hello'

# 文件操作示例
with open('image.jpg', 'rb') as f:
    img_data = f.read()  # 讀取為bytes

# 網絡通信示例
import socket
sock = socket.socket()
sock.send(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')

bytes 類型是Python處理二進制數據的核心工具,理解其特性和用法對於開發涉及底層數據處理的應用程序至關重要。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.