Hub Python 库文档

文件系统 API

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始

文件系统 API

HfFileSystem 类基于 fsspec,为 Hugging Face Hub 提供基于 Python 的文件接口。

HfFileSystem

HfFileSystem 基于 fsspec,因此它与 fsspec 提供的大多数 API 兼容。有关更多详细信息,请查看 我们的指南 和 fsspec 的 API 参考

class huggingface_hub.HfFileSystem

< >

( *args **kwargs )

参数

将远程 Hugging Face Hub 仓库访问为本地文件系统。

用法

>>> from huggingface_hub import HfFileSystem

>>> fs = HfFileSystem()

>>> # List files
>>> fs.glob("my-username/my-model/*.bin")
['my-username/my-model/pytorch_model.bin']
>>> fs.ls("datasets/my-username/my-dataset", detail=False)
['datasets/my-username/my-dataset/.gitattributes', 'datasets/my-username/my-dataset/README.md', 'datasets/my-username/my-dataset/data.json']

>>> # Read/write files
>>> with fs.open("my-username/my-model/pytorch_model.bin") as f:
...     data = f.read()
>>> with fs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
...     f.write(data)

__init__

< >

( *args endpoint: Optional = None token: Union = None **storage_options )

参数

  • use_listings_cache, listings_expiry_time, max_paths — 传递给 DirCache,如果实现支持目录列表缓存。传递 use_listings_cache=False 以禁用此类缓存。skip_instance_cache — bool 如果这是一个可缓存的实现,则在此处传递 True 以强制创建新的实例,即使存在匹配的实例,并防止存储此实例。asynchronous — bool loop — 兼容 asyncio 的 IOLoop 或 None

文档字符串摘自 fsspec 文档.

创建和配置文件系统实例

实例可能是可缓存的,因此如果看到足够相似的参数,则不需要新的实例。token 属性的存在是为了允许实现根据需要缓存实例。

如果没有任何参数,应该提供一个合理的默认值。

子类应该调用此方法。

exists

< >

( path **kwargs )

文档字符串摘自 fsspec 文档.

在给定路径下是否存在文件?

find

< >

( path: str maxdepth: Optional = None withdirs: bool = False detail: bool = False refresh: bool = False revision: Optional = None **kwargs )

参数

  • path — str maxdepth — int 或 None 如果不是 None,则下降的最大级别数withdirs — bool 是否在输出中包含目录路径。这在 glob 使用时为 True,但用户通常只想要文件。
  • kwargs 传递给 ls。 —

文档字符串摘自 fsspec 文档.

列出路径下的所有文件。

类似 posix find 命令,但不带条件

get_file

< >

( rpath lpath callback = <fsspec.callbacks.NoOpCallback object at 0x7fbffb9eb400> outfile = None **kwargs )

文档字符串取自 fsspec 文档.

将单个远程文件复制到本地

glob

< >

( path **kwargs )

文档字符串取自 fsspec 文档.

通过 glob 匹配查找文件。

如果路径以 '/' 结尾,则只返回文件夹。

我们支持 "**", "?""[..]"。我们不支持 ^ 用于模式否定。

maxdepth 选项应用于路径中第一个 ****。

kwargs 传递给 ls

info

< >

( path: str refresh: bool = False revision: Optional = None **kwargs ) 具有键的字典

返回值

具有键的字典

name (FS 中的完整路径), size (以字节为单位), type (文件、目录或其他) 和其他特定于 FS 的键。

文档字符串取自 fsspec 文档.

提供路径下条目详细信息

返回一个包含与 lsdetail=True 时完全相同信息的单个字典。

默认实现应该调用 ls,并且可以通过快捷方式覆盖。kwargs 传递给 “ls()

某些文件系统可能无法测量文件的大小,在这种情况下,返回的字典将包括 `'size': None`。

invalidate_cache

< >

( path: Optional = None )

文档字符串取自 fsspec 文档.

丢弃任何缓存的目录信息

isdir

< >

( path )

文档字符串取自 fsspec 文档.

此条目是否类似目录?

isfile

< >

( path )

文档字符串取自 fsspec 文档.

此条目是否类似文件?

ls

< >

( path: str detail: bool = True refresh: bool = False revision: Optional = None **kwargs )

文档字符串取自 fsspec 文档.

列出路径下的对象。

这应该包括该位置的子目录和文件。当请求详细信息时,文件和目录之间的区别必须明确。

特定键,或者可能是 FileInfo 类,或类似的,尚待确定,但必须在所有实现中保持一致。必须包括

  • 条目的完整路径(不带协议)
  • 条目的大小,以字节为单位。如果无法确定值,则为 None
  • 条目类型,"file"、"directory" 或其他

可能存在其他信息,适用于文件系统,例如,生成、校验和等。

可以使用 refresh=True|False 允许使用 self._ls_from_cache 来检查是否有保存的列表,并避免调用后端。这在列表可能很昂贵的情况下很常见。

modified

< >

( path: str **kwargs )

文档来自 fsspec 文档.

返回文件的修改时间戳,表示为 datetime.datetime

rm

< >

( path: str recursive: bool = False maxdepth: Optional = None revision: Optional = None **kwargs )

文档来自 fsspec 文档.

删除文件。

start_transaction

< >

( )

文档来自 fsspec 文档.

开始写入事务以延迟文件,非上下文版本

url

< >

( path: str )

获取给定路径的 HTTP URL

walk

< >

( path *args **kwargs )

文档来自 fsspec 文档.

返回路径下所有文件

列出所有文件,递归到子目录;输出采用迭代器风格,类似于 `os.walk()`。如果只需要简单的文件列表,可以使用 `find()`。

当 topdown 为 True 时,调用者可以在原地修改 dirnames 列表(可能使用 del 或切片赋值),walk() 将仅递归到 dirnames 中保留其名称的子目录;这可用于修剪搜索、强加特定的访问顺序,甚至告知 walk() 在恢复 walk() 之前创建或重命名的目录。(参见 os.walk)

请注意,“files” 输出将包括任何非目录内容,例如链接。

< > 在 GitHub 上更新