pythonwrite函数字的位置_Pythonos.pwritev函数
os.pwritev 函数将缓冲区 buffers 的内容写⼊⽂件描述符 fd 的偏移位置 offset 处,保持⽂件偏移量不变。缓冲区 buffers 必须是由 字节类对象 组成的序列。缓冲区以数组顺序处理。先写⼊第⼀个缓冲区的全部内容,再写⼊第⼆个缓冲区,照此继续。返回实际写⼊的字节总数。
操作系统可能对允许使⽤的缓冲区数量有限制(使⽤ sysconf() 获取 'SC_IOV_MAX' 值)。
函数定义
os.pwritev(fd, buffers, offset, flags=0)
# 函数定义
if sys.platform != 'win32':
# Unix only
...
def pwritev(__fd: int, __buffer: bytes[], __offset: int, __flags: int = 0) -> int: ...
...
兼容性:Linux 2.6.30 或更⾼版本,FreeBSD 6.0 或更⾼版本,OpenBSD 2.7 或更⾼版本,AIX 7.1 或更⾼版本。使⽤标志位需要Linux 4.7 或更⾼版本。
版本:3.7 新版功能。
参数
checkfd - ⽂件描述符。
checkbuffers - 缓冲区数组。
write的返回值checkoffset - ⽂件偏移量。
checkflags - 操作标志位,可进⾏或运算。
os.RWF_DSYNC=2 提供⽴即写⼊功能,等效于 O_DSYNC open(2) 标志。该标志仅作⽤于系统调⽤写⼊的数据。
os.RWF_SYNC=4 提供⽴即写⼊功能,等效于 O_SYNC open(2) 标志。该标志仅作⽤于系统调⽤写
⼊的数据。
返回值
checkint - 返回实际写⼊的字节总数。
⽰例1: - 使⽤ os.pwritev() 函数写⼊缓冲区数组。
# coding=utf-8
# Python3 代码
# 讲解怎样使⽤ os.pwritev() 函数写⼊缓冲区数组
# 引⼊ os 库
import os
# ⽂件路径
path = ""
# 使⽤ os.open 函数打开⽂件
fd = os.open(path, os.O_RDWR)
# 使⽤ os.pwritev 函数
# 写⼊字节数组
buffer1 = bytearray(b"Python")
buffer2 = bytearray(b"PHP")
len = os.pwritev(fd, [buffer1, buffer2], 3)
# 缓冲的字符长度
print('Length::', len)
# 读取⽂件内容
with open(path) as f:
ad())
# 关闭⽂件
os.close(fd)
Length:: 9
fooPythonPHP
fd ⽂件描述符需要可写权限,否则抛出 OSError 异常 OSError: [Errno 9] Bad file descriptor。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。