dvc.api.read()
返回一个被追踪文件的内容。
这类似于我们在 CLI 中的 dvc get
命令。
def read(path: str,
repo: str = None,
rev: str = None,
remote: str = None,
remote_config: dict = None,
config: dict = None,
mode: str = "r",
encoding: str = None)
用法
import dvc.api
modelpkl = dvc.api.read(
'model.pkl',
repo='https://github.com/iterative/example-get-started',
mode='rb'
)
描述
此函数封装了 dvc.api.open()
,提供一种简单方式来获取在 DVC 项目中被追踪的文件完整内容。该文件可以由 DVC(作为输出)或 Git 进行追踪。
返回的内容可以是 字符串 或 字节数组。这些内容会直接加载到内存中(不使用磁盘空间)。
返回的类型取决于所使用的 mode
参数。更多细节请参考 Python 内置的 open()
函数,其在底层被实际调用。
参数
-
path
(必需)— 要读取的目标文件的位置和文件名,相对于项目根目录(repo
)。 -
repo
— 指定 DVC 项目的所在位置。可以是 URL 或文件系统路径。在线 Git 仓库支持 HTTP 和 SSH 协议(例如[user@]server:project.git
)。默认值:使用当前项目(向上遍历当前工作目录树以查找)。 -
rev
— Git 提交(任何版本,如分支、标签名称、提交哈希或实验名称)。如果repo
不是 Git 仓库,则忽略此选项。默认值:None
(将使用当前工作树) -
remote
— 用于查找目标数据的DVC 远程存储的名称。默认值:若未提供remote
参数,则使用repo
的默认远程存储。对于本地项目,在尝试默认远程之前会先尝试缓存。 -
remote_config
— 传递给 DVC 远程存储的配置选项字典。可用于例如向remote
提供凭据。 -
config
— 传递给 DVC 项目的配置字典。它将与现有项目配置合并,可用于例如添加一个全新的remote
。 -
mode
— 指定打开文件的模式。默认为"r"
(只读)。与内置函数open()
中同名参数一致。 -
encoding
— 用于将文件内容解码为字符串的编解码器。仅应在文本模式下使用。默认为"utf-8"
。与内置函数open()
中同名参数一致。
异常
-
dvc.exceptions.FileMissingError
—repo
中缺少path
对应的文件。 -
dvc.exceptions.PathMissingError
— 在repo
中找不到path
。 -
dvc.exceptions.NoRemoteError
— 找不到remote
。
示例:从 DVC 仓库加载数据
任何在 DVC 项目中被追踪(并远程存储)的文件都可以通过此 API 直接在你的 Python 代码中加载。例如,假设你想从 GitHub 上的一个仓库加载并反序列化一个二进制模型:
import pickle
import dvc.api
data = dvc.api.read(
'model.pkl',
repo='https://github.com/iterative/example-get-started'
mode='rb'
)
model = pickle.loads(data)
此处我们使用
'rb'
模式以兼容pickle.loads()
。