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