# API del sistema de archivos

La clase `HfFileSystem` proporciona una interfaz de archivos pythonic para el Hugging Face Hub basada en [`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/).

## HfFileSystem[[huggingface_hub.HfFileSystem]]

`HfFileSystem` se basa en [fsspec](https://filesystem-spec.readthedocs.io/en/latest/), por lo que es compatible con la mayoría de las APIs que ofrece. Para más detalles, consulta [nuestra guía](../guides/hf_file_system) y la [API Reference](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem) de fsspec.

#### huggingface_hub.HfFileSystem[[huggingface_hub.HfFileSystem]]

```python
huggingface_hub.HfFileSystem(*args, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L370)

**Parámetros:**

endpoint (`str`, *opcional*) : Punto de acceso del Hub. El valor predeterminado es .

token (`bool` o `str`, *opcional*) : Un token de acceso de usuario válido (cadena). Por defecto, se utiliza el token guardado localmente, que es el método recomendado para la autenticación (ver https://huggingface.co/docs/huggingface_hub/quick-start#authentication). Para deshabilitar la autenticación, pase `False`.

block_size (`int`, *opcional*) : Tamaño de bloque para la lectura y escritura de archivos.

expand_info (`bool`, *opcional*) : Si se debe expandir la información de los archivos.

max_workers (`int`, *opcional*) : Número máximo de solicitudes concurrentes utilizadas para listar directorios grandes en paralelo (ver [find()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_file_system#huggingface_hub.HfFileSystem.find)). El valor predeterminado es 16. Establézcalo en 1 para deshabilitar los listados en paralelo.

live_follow (`bool`, *opcional*) : Si se siguen los cambios de archivos en los buckets a medida que ocurren en el Hub, para que las listas en caché se mantengan actualizadas sin llamadas manuales a [HfFileSystem.invalidate_cache()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_file_system#huggingface_hub.HfFileSystem.invalidate_cache). Cuando está habilitado, listar un bucket abre una conexión en segundo plano al feed de eventos del Hub para ese bucket. No tiene efecto en los repositorios de modelos, datasets y spaces (el Hub no emite cambios para esos).

- ****storage_options** (`dict`, *opcional*) : Opciones adicionales para el sistema de archivos. Consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.__init__).

Acceda a un repositorio remoto de Hugging Face Hub como si fuera un sistema de archivos local.

> [!WARNING]
> [HfFileSystem](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_file_system#huggingface_hub.HfFileSystem) ofrece compatibilidad con fsspec, lo cual es útil para bibliotecas que la requieren (por ejemplo, para leer conjuntos de datos de Hugging Face directamente con `pandas`). Sin embargo, introduce un sobrecoste adicional debido a esta capa de compatibilidad. Para un mejor rendimiento y fiabilidad, se recomienda utilizar los métodos de `HfApi` cuando sea posible.

El sistema de archivos admite rutas para el protocolo `hf://`, que sigue los siguientes esquemas de URL:

* Repositorios de modelos, conjuntos de datos y Spaces:

```
hf://<repo-id>[@<revision>]/<path/in/repo>
hf://datasets/<repo-id>[@<revision>]/<path/in/repo>
hf://spaces/<repo-id>[@<revision>]/<path/in/repo>
```

* Buckets (almacenamiento genérico):

```
hf://buckets/<bucket-id>/<path/in/bucket>
```

Nota: al usar [HfFileSystem](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_file_system#huggingface_hub.HfFileSystem) directamente, el prefijo de protocolo `hf://` es opcional en las rutas.

Uso:

```python
>>> from huggingface_hub import hffs

>>> # List files
>>> hffs.glob("my-username/my-model/*.bin")
['my-username/my-model/pytorch_model.bin']
>>> hffs.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 hffs.open("my-username/my-model/pytorch_model.bin") as f:
...     data = f.read()
>>> with hffs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
...     f.write(data)
```

Especifique un token para la autenticación:
```python
>>> from huggingface_hub import HfFileSystem
>>> hffs = HfFileSystem(token=token)
```

#### cp_file[[huggingface_hub.HfFileSystem.cp_file]]

```python
cp_file(path1: str, path2: str, revision: str | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1115)

**Parámetros:**

path1 (`str`) : Ruta de origen desde la que copiar.

path2 (`str`) : Ruta de destino a la que copiar.

revision (`str`, *opcional*) : La revisión de git desde la que copiar.

Copie un archivo dentro de un repositorio, entre repositorios o a un bucket.

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.upload_file()` para un mejor rendimiento.

#### existe[[huggingface_hub.HfFileSystem.exists]]

```python
exists(path, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1336)

**Parámetros:**

path (`str`) : Ruta a verificar.

**Devuelve:** `bool`

True si el archivo existe, False en caso contrario.

Comprueba si un archivo existe.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.exists).

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.file_exists()` para un mejor rendimiento.

#### find[[huggingface_hub.HfFileSystem.find]]

```python
find(path: str, maxdepth: int | None = None, withdirs: bool = False, detail: bool = False, refresh: bool = False, revision: str | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1051)

**Parámetros:**

path (`str`) : Ruta raíz desde la que listar los archivos.

maxdepth (`int`, *opcional*) : Profundidad máxima para descender en los subdirectorios.

withdirs (`bool`, *opcional*) : Incluye las rutas de directorio en la salida. El valor predeterminado es False.

detail (`bool`, *opcional*) : Si es True, devuelve un diccionario que mapea rutas a información de archivo. El valor predeterminado es False.

refresh (`bool`, *opcional*) : Si es True, omite la caché y obtiene los datos más recientes. El valor predeterminado es False.

revision (`str`, *opcional*) : La revisión de git desde la que se listará.

**Devuelve:** `Union[list[str], dict[str, dict[str, Any]]]`

Lista de rutas o diccionario de información de archivos.

Listar todos los archivos bajo la ruta.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.find).

> [!TIP]
> Los repositorios grandes se enumeran directorio por directorio, en paralelo, para sortear la paginación basada en cursores del punto final `tree` del Hub. Ajusta esto con el argumento `max_workers` de [HfFileSystem](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_file_system#huggingface_hub.HfFileSystem).

#### get_file[[huggingface_hub.HfFileSystem.get_file]]

```python
get_file(rpath, lpath = None, callback = <fsspec.callbacks.NoOpCallback object at 0x7f9673955c90>, outfile = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1444)

**Parámetros:**

rpath (`str`) : Ruta remota desde la que descargar.

lpath (`str`, *opcional*) : Ruta local para la descarga. Se puede omitir si se proporciona `outfile`.

callback (`Callback`, *optional*) : Optional callback to track download progress. Defaults to no callback.

outfile (`IO`, *opcional*) : Objeto similar a un archivo opcional para escribir. Si se proporciona, `lpath` se ignora.

Copiar un archivo remoto individual a local.

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.hf_hub_download()` o `HfApi.download_bucket_files` para un mejor rendimiento.

#### glob[[huggingface_hub.HfFileSystem.glob]]

```python
glob(path: str, maxdepth: int | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1033)

**Parámetros:**

path (`str`) : Patrón de ruta para coincidir.

maxdepth (`int`, *opcional*) : Profundidad máxima para descender en los directorios. Por defecto, no hay límite.

**Devuelve:** `list[str]`

Lista de rutas que coinciden con el patrón.

Encuentra archivos mediante coincidencia de glob.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.glob).

#### info[[huggingface_hub.HfFileSystem.info]]

```python
info(path: str, refresh: bool = False, revision: str | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1226)

**Parámetros:**

path (`str`) : Ruta para obtener información.

refresh (`bool`, *opcional*) : Si es True, omite la caché y obtiene los datos más recientes. El valor predeterminado es False.

revision (`str`, *opcional*) : La revisión de git de la que obtener la información.

**Devuelve:** `dict[str, Any]`

Diccionario que contiene información del archivo (tipo, tamaño, información del commit, etc.).

Obtén información sobre un archivo o directorio.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.info).

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.get_paths_info()` o `HfApi.repo_info()` para un mejor rendimiento (o `HfApi.get_bucket_paths_info()` o `HfApi.bucket_info()` para buckets).

#### invalidate_cache[[huggingface_hub.HfFileSystem.invalidate_cache]]

```python
invalidate_cache(path: str | None = None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L599)

**Parámetros:**

path (`str`, *opcional*) : Ruta a limpiar de la caché. Si no se proporciona, se limpia toda la caché.

Borrar la caché para una ruta dada.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.invalidate_cache).

#### isdir[[huggingface_hub.HfFileSystem.isdir]]

```python
isdir(path)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1361)

**Parámetros:**

path (`str`) : Ruta a verificar.

**Devuelve:** `bool`

True si path es un directorio, False en caso contrario.

Comprueba si una ruta es un directorio.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.isdir).

#### isfile[[huggingface_hub.HfFileSystem.isfile]]

```python
isfile(path)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1379)

**Parámetros:**

path (`str`) : Ruta a verificar.

**Devuelve:** `bool`

True si path es un archivo, False en caso contrario.

Comprueba si una ruta es un archivo.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.isfile).

#### ls[[huggingface_hub.HfFileSystem.ls]]

```python
ls(path: str, detail: bool = True, refresh: bool = False, revision: str | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L788)

**Parámetros:**

path (`str`) : Ruta al directorio.

detail (`bool`, *opcional*) : Si es True, devuelve una lista de diccionarios que contienen información de archivos. Si es False, devuelve una lista de rutas de archivos. El valor predeterminado es True.

refresh (`bool`, *opcional*) : Si es True, omite la caché y obtiene los datos más recientes. El valor predeterminado es False.

revision (`str`, *opcional*) : La revisión de git desde la que se listará.

**Devuelve:** `list[Union[str, dict[str, Any]]]`

Lista de rutas de archivo (si detail=False) o lista de diccionarios de información de archivo (si detail=True).

Listar el contenido de un directorio.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.ls).

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.list_repo_tree()` para un mejor rendimiento.

#### modificado[[huggingface_hub.HfFileSystem.modified]]

```python
modified(path: str, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1201)

**Parámetros:**

path (`str`) : Ruta al archivo.

**Devuelve:** `datetime`

Hora de última modificación del archivo.

Obtener la hora de la última modificación de un archivo.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.modified).

#### resolve_path[[huggingface_hub.HfFileSystem.resolve_path]]

```python
resolve_path(path: str, revision: str | None = None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L520)

**Parámetros:**

path (`str`) : Ruta a resolver.

revision (`str`, *opcional*) : La revisión del repositorio que se debe resolver. Por defecto, es la revisión especificada en la ruta.

**Devuelve:** `HfFileSystemResolvedPath`

Información de la ruta resuelta que contiene `repo_type`, `repo_id`, `revision` y `path_in_repo`.

**Excepciones:** ``ValueError`` o ``NotImplementedError``

- ``ValueError`` -- Si path contiene información de revisión conflictiva.
- ``NotImplementedError`` -- Si se intenta listar repositorios.

Resuelve una ruta del sistema de archivos de Hugging Face en sus componentes.

#### rm[[huggingface_hub.HfFileSystem.rm]]

```python
rm(path: str, recursive: bool = False, maxdepth: int | None = None, revision: str | None = None, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L738)

**Parámetros:**

path (`str`) : Ruta a eliminar.

recursive (`bool`, *opcional*) : Si es True, elimina el directorio y todo su contenido. El valor predeterminado es False.

maxdepth (`int`, *opcional*) : Número máximo de subdirectorios a visitar al eliminar recursivamente.

revision (`str`, *opcional*) : La revisión de git desde la que se eliminará.

Eliminar archivos de un repositorio.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.rm).

> [!WARNING]
> Nota: Cuando sea posible, use `HfApi.delete_file()` para un mejor rendimiento.

#### url[[huggingface_hub.HfFileSystem.url]]

```python
url(path: str)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1397)

**Parámetros:**

path (`str`) : Ruta para obtener la URL.

**Devuelve:** `str`

URL HTTP para acceder al archivo o directorio en el Hub.

Obtenga la URL HTTP de la ruta indicada.

#### walk[[huggingface_hub.HfFileSystem.walk]]

```python
walk(path: str, *args, **kwargs)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/hf_file_system.py#L1017)

**Parámetros:**

path (`str`) : Ruta raíz desde la que listar los archivos.

**Devuelve:** `Iterator[tuple[str, list[str], list[str]]]`

Un iterador de tuplas (ruta, lista de nombres de directorios, lista de nombres de archivos).

Devuelve todos los archivos bajo la ruta indicada.

Para más detalles, consulte la [documentación de fsspec](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.walk).

