旷视开源 MegFile——Python 文件读写 SDK

旷视公司推出了MegFile,一个Python SDK,旨在解决跨文件系统访问时的复杂性和效率问题。MegFile提供统一的API,支持快速的S3文件读写,并具备Glob语法扩展。其智能预读策略根据读取模式优化性能,适用于大数据存储场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起源

旷视研究院在探索大数据存储方案的过程中,先后尝试了多种文件存储系统,包括 POSIX 协议的本地存储、OSS 等。

多种文件存储系统带来了开发上的困难,对于存储于不同文件系统的文件,在访问时需要针对不同文件系统的 SDK 编写复杂的代码,增加了开发者的工作量。除此之外,跨系统的文件访问在代码实现上也不够优雅,导致代码不易读。

为了解决上述问题,我们开发了 MegFile。

特性

MegFile 作为 Python 文件读写 SDK,主要提供三个特性:

1.方便、齐全并和标注库风格保持一致的 API

2.快速 s3 文件文件读写

3.支持 s3 的 Glob AP

API 接口

与 Python 标准库相似,MegFile 提供了函数式 API 和 Path-Like API 两种文件访问方式。

以 smart 开头的函数库提供了形如 smart_open, smart_glob,smart_listdir,smart_exists 等函数,来进行文件访问;同时,用户也可以使用 SmartPath 构建一个 Pathlike 对象,提供了open,unlink,remove 等方法。

不论是 SmartPath 还是 smart 系列函数,都能够识别不同文件系统路径协议 (例如:file:///path/to/file、s3://bucket/key),并正确完成对应的操作,为多种文件系统提供了统一流畅的访问体验,极大简化了跨后端文件访问的代码量和编写难度。

文件读写速度

在大型项目和读写密集型任务上,文件读写速度非常重要。如果为了支持跨后端文件读写而牺牲读写速度是得不偿失的。在 MegFile 中,使用 smart_open 方法不仅可以打开各种协议的资源,在旷视内部最常用的 s3 协议上的 reader / writer 内部提供了多线程实现,并通过自适应的预读策略,使得其速度比目前已知 Python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值