Поддерживает ли fsspec виртуальные файловые системы, такие как pyfileysystem?

Одной из основных функций pyfilesystem являются виртуальные файловые системы. Например

      home_fs = open_fs('~/')
projects_fs = home_fs.opendir('/projects')

Я думаю, что это отличная функция, и я надеялся, что в fsspec есть что-то подобное. Но я не смог найти пример, и я не могу заставить его работать.

1 ответ

Вы можете захотетьDirFileSystem, вызывается как

      fs = fsspec.implementations.dirfs.DirFileSystem(
    "<root path>", fs=fsspec.filesystem("file")
)

Вы можете применить это к любой файловой системе, не только к локальной.root_pathдолжна быть строкой, которая, когда вы добавляете к ней дальнейшие части пути, создает полный путь, который целевая файловая система может понять; он может включать протокол (например, для HTTP это должно быть обязательно). В вашем случае это будет «~» (или расширенная версия, которая будет более явной).

Кроме того, вы можете создать произвольно отображаемую виртуальную файловую систему сReferenceFileSystem.

      mapping = {"/key1": ["/local/path/file1"],
           "/key2": ["/other/unrelated/path/file"]}
fs = fsspec.filesystem("reference", fo=mapping)

Здесь fs.cat("/key1") получит содержимое "/local/path/file1". Вы можете сделать эти пути удаленными или использовать сочетание различных бэкэндов и даже диапазонов байтов целевых файлов.

Другие вопросы по тегам