pyarrow.MemoryMappedFile#

class pyarrow.MemoryMappedFile#

基类: NativeFile

表示内存映射文件的流。

支持 'r'、'r+'、'w' 模式。

示例

创建带有内存映射的新文件

>>> import pyarrow as pa
>>> mmap = pa.create_memory_map('example_mmap.dat', 10)
>>> mmap
<pyarrow.MemoryMappedFile closed=False own_file=False is_seekable=True is_writable=True is_readable=True>
>>> mmap.close()

打开带有内存映射的现有文件

>>> with pa.memory_map('example_mmap.dat') as mmap:
...     mmap
...
<pyarrow.MemoryMappedFile closed=False own_file=False is_seekable=True is_writable=False is_readable=True>
__init__(*args, **kwargs)#

方法

__init__(*args, **kwargs)

close(self)

create(path, size)

创建一个MemoryMappedFile

download(self, stream_or_path[, buffer_size])

将此文件完整读取到本地路径或目标流中。

fileno(self)

flush(self)

刷新流(如果适用)。

get_stream(self, file_offset, nbytes)

返回一个独立于文件状态的、用于读取文件片段的输入流。

isatty(self)

metadata(self)

返回文件元数据

read(self[, nbytes])

读取并返回最多 n 个字节。

read1(self[, nbytes])

读取并返回最多 n 个字节。

read_at(self, nbytes, offset)

从文件的指定偏移量处读取指定数量的字节

read_buffer(self[, nbytes])

从缓冲区读取。

readable(self)

readall(self)

readinto(self, b)

读入提供的缓冲区

readline(self[, size])

未实现。

readlines(self[, hint])

未实现。

resize(self, new_size)

调整映射和底层文件的大小。

seek(self, int64_t position, int whence=0)

更改当前文件流位置

seekable(self)

size(self)

返回文件大小

tell(self)

返回当前流位置

truncate(self)

未实现

upload(self, stream[, buffer_size])

从源流写入此文件。

writable(self)

write(self, data)

将数据写入文件。

writelines(self, lines)

将行写入文件。

属性

closed

模式

文件模式。

close(self)#
closed#
static create(path, size)#

创建一个MemoryMappedFile

参数:
pathstr

文件创建位置。

sizeint

内存映射文件的大小。

download(self, stream_or_path, buffer_size=None)#

将此文件完整读取到本地路径或目标流中。

此方法首先寻址(seek)到文件开头。

参数:
stream_or_pathstr 或类文件对象

如果是字符串,则为要写入的本地文件路径;否则,应为可写流。

buffer_sizeint, 可选

用于数据传输的缓冲区大小。

fileno(self)#
flush(self)#

刷新流(如果适用)。

如果流不可写,则会引发错误。

get_stream(self, file_offset, nbytes)#

返回一个独立于文件状态的、用于读取文件片段的输入流。

允许将随机访问文件的部分内容作为输入流读取,且互不干扰。

参数:
file_offsetint
nbytesint
返回:
streamNativeFile
isatty(self)#
metadata(self)#

返回文件元数据

mode#

文件模式。目前 NativeFile 的实例可能支持:

  • rb: 二进制读取

  • wb: 二进制写入

  • rb+: 二进制读写

  • ab: 二进制追加

read(self, nbytes=None)#

读取并返回最多 n 个字节。

如果 nbytes 为 None,则读取文件的剩余全部内容。

参数:
nbytesint, 默认 None
返回:
databytes
read1(self, nbytes=None)#

读取并返回最多 n 个字节。

与 read() 不同,如果 nbytes 为 None,则只读取一个数据块,而不是整个文件。

参数:
nbytesint, 默认 None

要读取的最大字节数。

返回:
databytes
read_at(self, nbytes, offset)#

从文件的指定偏移量处读取指定数量的字节

参数:
nbytesint
offsetint
返回:
databytes
read_buffer(self, nbytes=None)#

从缓冲区读取。

参数:
nbytesint, 可选

读取的最大字节数

readable(self)#
readall(self)#
readinto(self, b)#

读入提供的缓冲区

参数:
b类缓冲区对象

可写缓冲区对象(如 bytearray)。

返回:
writtenint

已写入的字节数

readline(self, size=None)#

未实现。读取并返回文件中的一行字节数据。

如果指定了 size,则最多读取 size 个字节。

行终止符始终为 b”\n”。

参数:
sizeint

读取的最大字节数

readlines(self, hint=None)#

未实现。读取文件的行

参数:
hintint

停止读取前最大的字节数

resize(self, new_size)#

调整映射和底层文件的大小。

参数:
new_sizenew size in bytes
seek(self, int64_t position, int whence=0)#

更改当前文件流位置

参数:
positionint

字节偏移量,相对于 whence 参数的值进行解释

whenceint, 默认 0

寻址偏移量的参考点

返回:
int

新的绝对流位置。

备注

whence 的取值:* 0 – 流的开头(默认值);偏移量应为零或正数 * 1 – 当前流位置;偏移量可以是负数 * 2 – 流的末尾;偏移量通常为负数

seekable(self)#
size(self)#

返回文件大小

tell(self)#

返回当前流位置

truncate(self)#

未实现

upload(self, stream, buffer_size=None)#

从源流写入此文件。

参数:
stream类文件对象

要管道传输到此文件的源流。

buffer_sizeint, 可选

用于数据传输的缓冲区大小。

writable(self)#
write(self, data)#

将数据写入文件。

参数:
data类字节对象或缓冲区协议的 exporter
返回:
int

nbytes: 已写入的字节数

writelines(self, lines)#

将行写入文件。

参数:
lines可迭代对象

类字节对象或缓冲区协议导出器的可迭代对象