在 GitHub 上编辑

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.FileMissingErrorrepo 中缺少 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()

内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天