文件系统 API
HfFileSystem
类基于 fsspec
,为 Hugging Face Hub 提供基于 Python 的文件接口。
HfFileSystem
HfFileSystem
基于 fsspec,因此它与 fsspec 提供的大多数 API 兼容。有关更多详细信息,请查看 我们的指南 和 fsspec 的 API 参考。
class huggingface_hub.HfFileSystem
< 源代码 >( *args **kwargs )
参数
- token (
str
或bool
, 可选) — 有效的用户访问令牌(字符串)。默认为本地保存的令牌,这是推荐的认证方法(参见 https://huggingface.co/docs/huggingface_hub/quick-start#authentication)。要禁用身份验证,请传递False
。
将远程 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 )
文档字符串摘自 fsspec 文档.
创建和配置文件系统实例
实例可能是可缓存的,因此如果看到足够相似的参数,则不需要新的实例。token 属性的存在是为了允许实现根据需要缓存实例。
如果没有任何参数,应该提供一个合理的默认值。
子类应该调用此方法。
find
< 源代码 >( path: str maxdepth: Optional = None withdirs: bool = False detail: bool = False refresh: bool = False revision: Optional = None **kwargs )
文档字符串摘自 fsspec 文档.
列出路径下的所有文件。
类似 posix find
命令,但不带条件
get_file
< 源代码 >( rpath lpath callback = <fsspec.callbacks.NoOpCallback object at 0x7fbffb9eb400> outfile = None **kwargs )
文档字符串取自 fsspec 文档.
将单个远程文件复制到本地
文档字符串取自 fsspec 文档.
通过 glob 匹配查找文件。
如果路径以 '/' 结尾,则只返回文件夹。
我们支持 "**"
, "?"
和 "[..]"
。我们不支持 ^ 用于模式否定。
maxdepth 选项应用于路径中第一个 ****。
kwargs 传递给 ls
。
info
< 源代码 >( path: str refresh: bool = False revision: Optional = None **kwargs ) → 具有键的字典
返回值
具有键的字典
name (FS 中的完整路径), size (以字节为单位), type (文件、目录或其他) 和其他特定于 FS 的键。
文档字符串取自 fsspec 文档.
提供路径下条目详细信息
返回一个包含与 ls
在 detail=True
时完全相同信息的单个字典。
默认实现应该调用 ls,并且可以通过快捷方式覆盖。kwargs 传递给 “ls()
。
某些文件系统可能无法测量文件的大小,在这种情况下,返回的字典将包括 `'size': None`。
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 来检查是否有保存的列表,并避免调用后端。这在列表可能很昂贵的情况下很常见。
rm
< source >( path: str recursive: bool = False maxdepth: Optional = None revision: Optional = None **kwargs )
文档来自 fsspec 文档.
删除文件。
获取给定路径的 HTTP URL
文档来自 fsspec 文档.
返回路径下所有文件
列出所有文件,递归到子目录;输出采用迭代器风格,类似于 `os.walk()`。如果只需要简单的文件列表,可以使用 `find()`。
当 topdown 为 True 时,调用者可以在原地修改 dirnames 列表(可能使用 del 或切片赋值),walk() 将仅递归到 dirnames 中保留其名称的子目录;这可用于修剪搜索、强加特定的访问顺序,甚至告知 walk() 在恢复 walk() 之前创建或重命名的目录。(参见 os.walk)
请注意,“files” 输出将包括任何非目录内容,例如链接。