Поддерживает ли 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". Вы можете сделать эти пути удаленными или использовать сочетание различных бэкэндов и даже диапазонов байтов целевых файлов.