Python | os.read 函數

怎樣讀取n個字節串

最近更新時間 2020-12-12 13:09:51

os.read 函數從文件描述符 fd 中讀取至多 n 個字節。返回所讀取字節的字節串 (bytestring)。如果到達了 fd 指向的文件末尾,則返回空字節對象。

函數定義

os.read(fd, n)
# 函數定義

if sys.platform != 'win32':
    # Unix only
    ...
    def read(__fd: int, __length: int) -> bytes: ...
    ...

參數

  • checkfd - 文件描述符。
  • checkn - 讀取的字節長度。

返回值

  • checkbytes - 讀取的字節串。

示例1: - 使用 os.read() 函數讀取 n 個字節串。

# coding=utf-8

# Python3 代碼
# 講解怎樣使用 os.read() 函數讀取 n 個字節串

# 引入 os 庫
import os

# 文件路徑
path = "foo.txt"

# 使用 os.open 函數打開文件
fd = os.open(path, os.O_RDWR)

# 使用 os.read 函數
# 讀取 3 個字節長度
s = os.read(fd, 3)
print("Bytes::", s)
print(s.decode('utf8'))

# 關閉文件
os.close(fd)
Bytes:: b'\xe4\xb8\xad'
中

上面的示例獲取 3 個字節長度,由於時 utf-8 編碼,3 個字節表示一箇中文字符,所以結果輸出一個 "中" 字。如果獲取 5 個字節串,使用 decode() 函數解碼會拋出 UnicodeDecodeError 異常。UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 3-4: unexpected end of data

rss_feed