Python | os.read 函数

Lasted 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