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()。